繁体   English   中英

需要帮助定义查询,我正在尝试从3个不同的表中获取数据

[英]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

  • 如果床垫为空,则该视图应与患者一起显示,并且pressureMap数据= NULL

现在,我有以下查询:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM