我们有两个表,其中表A和表B需要连接。表A和B之间的关系是一对多。我们现在可以在tableA.aID = tableB.aID上使用这个LEFT JOIN tableB加入。我们希望确保只有一条记录加入表B,这只是最新的记录。我们现在获得了超过一条记录。
SELECT student.*
FROM student
LEFT JOIN (SELECT B1.*
FROM medicalRecord AS B1
LEFT JOIN medicalRecord AS B2
ON B1.studentID = B2.studentID
AND B1.checkUpDate< B2.checkUpDate
WHERE B2.studentID IS NULL) AS b
ON ( student.studentID = medicalRecord.studentID)
Where student.studentID=45
答案 0 :(得分:1)
我们假设您只想从val
列中具有最高值的子表中获取记录。你可以使用:
SELECT a.*,
b.*
FROM a
LEFT JOIN (SELECT B1.*
FROM b AS B1
LEFT JOIN b AS B2
ON B1.aID = B2.aID
AND B1.val < B2.val
WHERE B2.aID IS NULL) AS b
ON ( a.aID = b.aID )
我们的想法是使用子查询过滤表中val
列中值最大的记录,然后加入 。