左加入Mysql查询

时间:2012-12-06 18:57:25

标签: mysql

我们有两个表,其中表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

1 个答案:

答案 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列中值最大的记录,然后加入