試想以下兩個表,一個名爲「用戶」及「訂單」:LEFT OUTER JOIN和只返回第一個匹配
ID NAME
1 Foo
2 Bar
3 Qux
ID USER ITEM SPEC TIMESTAMP
1 1 12 4 20150204102314
2 1 13 6 20151102160455
3 3 25 9 20160204213702
我想要得到的輸出是:
USER ITEM SPEC TIMESTAMP
1 12 4 20150204102314
2 NULL NULL NULL
3 25 9 20160204213702
換言之:在用戶和訂單之間執行LEFT OUTER JOIN,如果您沒有爲該用戶找到任何訂單,則返回null,但是如果您確實找到了一些,則只返回第一個(最早的一個基於時間戳)。
如果我只使用一個LEFT OUTER JOIN,它將爲用戶1返回兩行,我不希望這樣。我想在另一個select中嵌套LEFT OUTER JOIN,GROUP BY其他字段並獲取MIN(TIMESTAMP),但這不起作用,因爲我需要在我的組中有「SPEC」,並且由於這兩個命令有不同的SPEC,他們仍然出現。
有關如何達到預期結果的任何想法,