Giả sử PRICES.date
là kiểu dữ liệu DATETIME, sử dụng:
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
Tôi đã sử dụng hàm DATE để xóa phần thời gian, vì CURRENT_DATE
sẽ không bao gồm phần thời gian trong khi các bản ghi DATETIME sẽ.
Trong ví dụ này, date
tiêu chí đang được áp dụng trước đây THAM GIA được thực hiện. Nó giống như một bảng dẫn xuất, lọc thông tin trước khi thực hiện JOIN - sẽ tạo ra các kết quả khác với nếu tiêu chí được chỉ định trong mệnh đề WHERE.
Để nhận danh sách các sản phẩm và giá cả cho ngày mai, hãy sử dụng:
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)
Tham khảo:
Nếu bạn muốn giá cả ngày thường và ngày mai trong một truy vấn, hãy sử dụng:
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)