0

テーブルAとテーブルBを結合する必要がある2つのテーブルがあります。表Aと表Bの関係は1対多です。tableA.aID=tableB.aIDでこのLEFTJOINtableBを使用して参加できるようになりました。テーブルBで結合されているレコードが1つだけであり、それが最新のレコードのみであることを確認したいと思います。現在、複数のレコードを取得しています。

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
4

1 に答える 1

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結合することです。

于 2012-12-06T19:07:17.347 に答える