鍍金池/ 問答/數(shù)據(jù)庫/ 請(qǐng)問大家主表關(guān)聯(lián)子表,且子表有多條記錄,但是只想獲取子表最新的一條記錄(也就是最

請(qǐng)問大家主表關(guān)聯(lián)子表,且子表有多條記錄,但是只想獲取子表最新的一條記錄(也就是最新添加的記錄)怎么寫

可以舉個(gè)列子嗎

回答
編輯回答
浪蕩不羈

兩次JOIN

 SELECT p.*, c1.*
     FROM parent p
INNER JOIN child AS c1
       ON (p.id = c1.parent_id)
LEFT JOIN child AS c2
       ON (c1.parent = c2.parent_id and c1.createTime < c2.createTime )
    WHERE c2.createTime IS NULL
2017年10月7日 06:53
編輯回答
嘟尛嘴
--既然題主沒有例子,那我就自己寫個(gè)例子

--假設(shè)有兩張表 Table1 和 Table2 ,關(guān)聯(lián)的字段是 Field1 和 Field2

--額外需要的條件是 Table2 表內(nèi)有 AddTime 添加時(shí)間字段,方便判斷是否為最新記錄

SELECT * FROM [Table1] 

WHERE Field1=(
                   SELECT TOP 1 Field2 FROM [Table2] ORDER BY AddTime DESC --根據(jù)AddTime倒序排序,查詢出的第一條數(shù)據(jù)即最新記錄
              )
2017年3月19日 01:55