我想結合到兩個表,我想要一個表中的日期大於另一個表的日期的最小的ID。我認爲這是一件容易的事,但它給了我一個合適的選擇。組合表給定日期標準
這裏是我天真的嘗試:
select table1.id, MIN(table2.id)
FROM table1
INNER JOIN table2
ON table2.id = table1.id
WHERE table1.date > table2.date
這是不行的,因爲一旦在表1的日期比表2大於它加入所有的ID比日期更加不只是那些。這意味着無論發生什麼,它都會返回最小的ID。
感謝
編輯度:
產品
id | price_date
---------------
1 | 2011-01-02
價格
id | fid | price_date
---------------
1 | 1 | 2011-01-01
2 | 1 | 2012-01-01
所以我想回到
product.id | price.id
---------------------
1 | 1
嘿嘿,謝謝,但它本質上給了我同樣的事情,而是作爲一個左外連接,而不是我的內連接的功能。 – tshauck 2012-04-01 00:43:51
@tshauck你可以把幾行數據與預期的結果?我認爲這與你的嘗試有點不同,因爲這裏的查詢是針對table1中的每個記錄執行的(這是我不喜歡的部分),而問題的嘗試是在兩個表之間加入ids。 (即加入是在「選擇」列表中,而不是「從」列表。 – Glenn 2012-04-01 00:48:28
謝謝,我希望這是有道理的。 – tshauck 2012-04-01 01:06:04