我是一名医院医生,正在尝试从OO.org Base提交报告,该报告将为我的每位患者提供最近三次血液检查。
我有一个包含以下表格的数据库: “拍”(每个独特患者的详细信息) “访问”(每次入场的细节,与“轻拍”的一对多关系) “bld”(每组血液结果的详细信息,每个都有一个日期(bld.date)和时间(bld.time)字段,与“访问”有一对多的关系)
我的出发点是以下SQL查询:
SELECT *
FROM "bld"
INNER JOIN "visit" ON "bld"."visit" = "visit"."id"
INNER JOIN "pat" ON "visit"."pat" = "pat"."id";
返回每个血液结果以及相关患者和入院详情。
我已经达到了我对SQL(初出茅庐)知识的限制,我非常感谢指导如何只返回每次录取的三个最新结果。
如果除了最近的三个结果之外我还可以得到第一个结果,那将是一个巨大的奖励。
答案 0 :(得分:-1)
您没有告诉您正在使用的是什么sql db,但我认为这样可以使用
SELECT TOP 3 *
FROM bld
INNER JOIN visit ON bld.visit = visit.id
INNER JOIN pat ON visit.pat" = pat.id
ORDER BY bld.date desc, bld.time desc
如果除了三个以外,这将是一个巨大的奖金 最近的结果我也可以得到第一个结果。
使用“SELECT TOP 1 *”代替“SELECT TOP 3 *”。
答案 1 :(得分:-1)
好了,既然我明白你要做什么,试试这个PHP代码:
$query1 = "SELECT id FROM pat";
$data1 = mysqli_query($dbc,$query1);
while($row = mysqli_fetch_array($data1)) {
$query2 = "SELECT * FROM `bld`
INNER JOIN `visit` ON `bld`.`visit` = `visit`.`id`
INNER JOIN `pat` ON `visit`.`pat` = {$row['id']}
OREDER BY `bld`.`date` DESC, `bld`.`time` DESC LIMIT 3";
$data2 = mysqli_query($dbc,$query2);
while($row = mysqli_fetch_array($data1)) {
//code to be executed
}
}
我建议您将bld.time
和bld.date
合并为一列,然后使用timestamp
。