left join mit Bedingung für die Rechte Tabelle in mysql
Ich habe versucht, Sie zu wickeln meinem Kopf herum, aber ich bin nicht so viel Fortschritt. Mein Ziel ist, einen left join zwischen zwei Tabellen mit den Kriterien für die richtige Tabelle. Ich würde gerne sehen, die Liste aller Produkte und Preise für den aktuellen Tag, obwohl es gibt keine Preisgestaltung Zeile für den aktuellen Tag. Hier ist ein Beispiel für den code:
SELECT products.id, products.name, prices.price
FROM products LEFT JOIN prices
ON products.id = prices.id
WHERE prices.date = CURRENT_DATE
Diese produziert nur die Produkte mit Preis-Informationen für das aktuelle Datum.
OK, das ist nur der erste Teil meiner Frage. Ich möchte schließlich ziehen die Preis für CURRENT_DATE + INTERVAL 1 DAY als gut.
Jede information würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt
PRICES.date
ist ein DATETIME-Datentyp verwenden:Benutzte ich die DATUM-Funktion zu entfernen, die mal Teil, weil
CURRENT_DATE
nicht die Zeit Teil, während DATETIME records.In diesem Beispiel, die
date
Kriterien angewendet wird vor wird die VERKNÜPFUNG hergestellt. Es ist wie eine abgeleitete Tabelle, filtern die Informationen, bevor der BEITRITT erfolgt -- die werden unterschiedliche Ergebnisse erzeugen, als wenn die Kriterien angegeben wurde, in der WHERE-Klausel.Um die Liste der Produkte und Preise für morgen, verwenden Sie:
Referenz:
Wenn Sie möchten, dass sowohl heutige und morgige Preise in einer einzigen Abfrage verwenden:
Starke Antworten. Hinzufügen OMG Ponys " Antworten... habens 'Recht' Tabelle Kriterien in der ursprünglichen WHERE-Anweisung im Grunde dreht sich der LEFT-OUTER-JOIN in einen INNER-JOIN. Nur ein anderer Weg, es zu sehen, dass helfen könnte.