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