ich eine SELECT-Anweisung für MySQL zu komponieren versuche, die aus der Tabelle wählen A, was nicht zum Beispiel in Tabelle B nicht vorhanden ist:Wählen Sie aus Tabelle A, die in Tabelle B existiert nicht
Tabelle A:
+------+
| BAND |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+
Tabelle B:
+------+
| HATE |
+------+
| 1 |
| 5 |
+------+
Also, wenn Tabelle A alle Bands sind, und Tabelle B sind die Bands, die ich hasse, dann nur ich will Bands, die ich nicht hassen. So sollte das Ergebnis einer Auswahl sein:
+------+
| BAND |
+------+
| 2 |
| 3 |
| 4 |
+------+
Wie würde ich eine einzelne Auswahl für diese schreiben? Hier war mein letzter Versuch:
SELECT * FROM A LEFT JOIN B ON A.BAND = B.HATE WHERE B.HATE IS NULL;
EDIT: Die Zeile oben wurde behoben! Siehe Kommentare unten ... "= NULL" versus "IS NULL".
@Michelle Ihre Abfrage in Ordnung zu sein scheint. Warum sagst du, dass es nicht funktioniert? – Barranka
Siehe meinen Kommentar unten. Für alle anderen mit dem gleichen Problem ist "IS NULL" in MySQL nicht gleich "= NULL". Ich habe versucht, eine Möglichkeit und die Abfrage funktioniert, auf die andere Weise gibt es eine leere Menge zurück. Seltsam!!! – TSG
Nicht nur in MySQL, sondern in jedem SQL-Dialekt. Der 'NULL'-Wert in SQL hat die Eigenschaft, sich von jedem anderen Wert zu unterscheiden, einschließlich eines anderen' NULL'. Aus diesem Grund können Sie nicht erwarten, dass '= NULL' an einer SQL-Abfrage arbeitet ... Sie müssen' IS NULL' verwenden. – Barranka