我有2张桌子。
A:
ida title
1 aaa
2 bbb
3 ccc
和 B:
idb ida date count
1 1 2014-09-15 14:22:37 15
2 1 2014-09-15 15:52:07 34
3 1 2014-09-15 14:25:38 16
我想得到所有的A表行,最近的日期和 B 中对应的计数,即使它们在B表中都不存在。
我希望在这个例子中得到这个结果。
A.ida A.title B.date B.count
1 aaa 2014-09-15 15:52:07 34
2 bbb null null
3 ccc null null
任何帮助都会被贬低:)
编辑:我的初始和错误请求是:
SELECT e.ida, MAX(n.date_add) as date_notification, n.count FROM ida e LEFT JOIN idb n ON e.ida = n.ida group by e.ida
不要将它加入到这个初始的堆栈中是很难的。
答案 0 :(得分:0)
以下是您要查找的查询:
SELECT A.ida
,A.title
,B.date
,B.count
FROM tableA A
LEFT OUTER JOIN (SELECT B.ida
,MAX(B.date) AS [max_date]
FROM tableB B
GROUP BY B.ida) T ON T.ida = A.ida
LEFT OUTER JOIN tableB B ON B.ida = T.ida
AND B.date = T.max_date
ORDER BY A.ida
第一个关节用于仅获取每个ida
的最后日期,第二个关节用于从tableB
获取相应的信息。
希望这会对你有所帮助。