我有3个不同的mysql表,具有以下属性:
床垫:id,healthsystemname,建筑物,楼层,房间,床,id用户
病人:身份证,姓名
压力Map:id,id床垫,压力数据,状态,创建时间,更新时间
我想得到一个所有床垫的列表,其中包含以下信息,以显示在我用laravel(php)开发的应用程序的 Jmeter 板上:
它应该与病人台(matt.id=patient.idmatt)连接。
它应该与pressuremap表(pressuremap.idMatt=matt.id)连接起来
我只需要最新压力图的信息(order by pressure.u at downent,limit 1)
可能是床垫没有指定患者和/或压力图。在这种情况下,应该有一行,其中与患者和pressuremap相关的值为null
所选选项包括:matt.id、patient.name、patient.lasname、preassuremap.presence、preassuremap.created\u at
现在,我通过以下功能获得了与患者连接的床垫的信息,但我需要添加pressuremap信息:
public function index(){
$id = Auth::id();
$mattress = DB::table("mattress")
->leftJoin("patient","mattress.id","=","patient.idMattress")
->select("patient.id", "patient.name", "patient.surname", "patient.medicalRecordNumber", "patient.visitRecordNumber", "mattress.id", "mattress.healthSystemName","mattress.building","mattress.floor","mattress.room", "mattress.bed")
->where('mattress.idUser', '=', $id)
->get();
return view('dashboard',['mattress' => $mattress]);
}
如何获取这些数据?
为了更好地理解,我添加了一个如何显示这些信息的图像,其中我已经有了绿色的数据,需要添加黄色的数据:
更新:挖了一点后,我找到了一个方法,添加最新的压力图到床垫,但现在我没有得到床垫是空的。我还必须提到,您需要在config/database.php文件中将mysql属性“strict”设置为false。
$latestPressureMap = DB::table('pressuremap')
->select('idMattress', DB::raw('MAX(created_at) as last_pressureMap_created_at'), 'presence', 'maxPressure')
->groupBy('idMattress');
$mattress = DB::table('mattress')
->joinSub($latestPressureMap, 'latest_pressureMap', function ($join) {
$join->on('mattress.id', '=', 'latest_pressureMap.idMattress');
})
->leftJoin("patient","mattress.id","=","patient.idMattress")
->select("patient.id", "patient.name", "patient.surname", "patient.medicalRecordNumber", "patient.visitRecordNumber", "mattress.id", "mattress.healthSystemName","mattress.building","mattress.floor","mattress.room", "mattress.bed", "patient.gender", "latest_pressureMap.presence", "latest_pressureMap.last_pressureMap_created_at","latest_pressureMap.maxPressure")
->where('mattress.idUser', '=', $id)
->get();
return view('dashboard',['mattress' => $mattress]);
2条答案
按热度按时间wqlqzqxt1#
最后,我找到了方法:
bd1hkmkf2#
请尝试以下代码:
我没有在select中包括patient.medicalrecordnumber和patient.visitrecordnumber,因为您没有说过patient表中存在这些列。如果它们确实存在,您可以轻松地更改查询。