Uitgaande van PRICES.date
is een DATETIME-gegevenstype, gebruik:
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
In dit voorbeeld is de date
criteria worden vóór . toegepast de JOIN is gemaakt. Het is als een afgeleide tabel, waarbij de informatie wordt weggefilterd voordat de JOIN wordt gemaakt -- die andere resultaten zal opleveren dan wanneer de criteria waren opgegeven in de WHERE-component.
Om de lijst met producten en prijzen voor morgen te krijgen, gebruik:
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)
Referentie:
Als u zowel de prijzen van vandaag als morgen in één zoekopdracht wilt, gebruikt u:
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)