![](/img/trans.png)
[英]i am trying to get data from input box and pass it to the database need help not able to get result
[英]Need help to define a query, where I am trying to get data from 3 different tables
我有以下表格:
床垫: id(PK),idUser(FK)healthSystemName,建筑物,楼层,房间,床,参考
患者: id(PK),idMattress(FK),idUSer(FK),姓名,姓氏,性别,生日,medicalRecordNumber,visiterRecordNumber,strees,城市,邮政编码,国家/地区,maxPressureTolerance
PressureMap: id(PK),idMattress(FK),pressureData,maxPressure,状态,bodyPosition,created_at,updated_at
我想知道我需要用来获取以下视图的查询:
Patient.name,Patient.surname,Patient.medicalRecordNumber,Patient.visitRecordNumber,Mattress.room,Mattress.id,PressureMap.pressureData( 仅由created_at提供 ),PressureMap.presence
现在,我有以下查询:
SELECT p.name
, p.surname
, p.medicalRecordNumber
, p.visitRecordNumber
, m.room
, m.id mattressID
FROM mattress m
LEFT
JOIN patient p
on p.idMattress = m.id
我在哪里分组,因为我需要桌子床垫和桌子病人,但我不知道如何仅在最后一个条目中添加pressureMap数据。 因此,我得到了绿色数据,我需要知道如何添加黄色数据。
谢谢!
我找到了使用Laravel查询构建器解决该问题的方法。
$latestPressureMap = DB::table('pressuremap')
->select('idMattress', DB::raw('MAX(created_at) as last_pressureMap_created_at'), 'presence', 'maxPressure')
->groupBy('idMattress');
$mattress = DB::table('mattress')
->leftJoinSub($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]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.