PRICES.date
假設是DATETIME數據類型,可使用:
SELECT pd.id,
pd.name,
pr.price
FROM PRODUCTS pd
LEFT JOIN PRICES pr ON pr.id = pd.id
AND DATE(pr.date) = CURRENT_DATE
我用DATE function去除時間部分,因爲CURRENT_DATE
將不包括時間部分,而DATETIME記錄將。
在此示例中,正在應用date
標準之前 JOIN進行。它就像一個派生表,在建立JOIN之前將信息過濾掉 - 這將產生與在WHERE子句中指定標準不同的結果。
要獲取產品和價格爲明天的列表,使用:
SELECT pd.id,
pd.name,
pr.price
FROM PRODUCTS pd
LEFT JOIN PRICES pr ON pr.id = pd.id
AND DATE(pr.date) = DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY)
參考:
如果你想同時今天和明天的價格在單查詢,使用:
SELECT pd.id,
pd.name,
pr1.price AS price_today,
pr2.price AS price_tomorrow
FROM PRODUCTS pd
LEFT JOIN PRICES pr1 ON pr1.id = pd.id
AND DATE(pr1.date) = CURRENT_DATE
LEFT JOIN PRICES pr2 ON pr2.id = pd.id
AND DATE(pr2.date) = DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY)
今天學到了新東西:) – almaruf 2015-08-11 09:21:07