You are not logged in.

  • Login

1

Wednesday, January 18th 2012, 7:50am

MYSQL: Abfrage über 2 Tabellen, Werte die nicht übereinstimmen ausgeben

Hallo zusammen,
ich grübel schon seit längerem an ein Problem und komm einfach nicht auf die Lösung.

Ich habe eine Tabelle "laender" mit den Spalten:
ID (INT), continent (ENUM), Name (VARCHAR)

Weiterhin habe ich eine Tabelle "bundeslaender" mit den Spalten:
ID (INT), LandID (INT), Name (VARCHAR)

Der Wert in LandID ist immer der Wert des entsprechenden Landes zu dem das Bundesland gehört.

In der Tabelle bundeslaender kann natürlich die LandID öfters vorkommen.

Ich möchte mir nun alle Länder ausgeben lassen die noch kein Bundesland haben, also den ID noch nicht in der Tabelle bundeslaender auftaucht.

Mit 2 Select Abfragen habe ich zwar eine Lösung jedoch ist dies natürlich sehr Performance-lastig . Dies lässt sich doch bestimmt auch anders lösen.
Nach Möglichkeit wäre es auch schön, wenn man das Ergebnis nach continet und Name des Landes sortieren könnte.

Hat vielleicht jemand ein Tipp für mich wie ich das umsetzen kann.

MfG
Boyge

2

Wednesday, January 18th 2012, 2:14pm

Ungetestet:

SQL Code

1
SELECT l.ID, l.Name FROM laender AS l LEFT JOIN bundeslaender AS b ON l.ID = b.LandID WHERE b.ID IS NULL

3

Wednesday, January 18th 2012, 3:32pm


Ungetestet:

SQL Code

1
SELECT l.ID, l.Name FROM laender AS l LEFT JOIN bundeslaender AS b ON l.ID = b.LandID WHERE b.ID IS NULL


Hallo Harfner,

vielen dank das wars. bin einfach nicht auf das IS NULL gekommen :-)
habe es erfolgreich getestet.
kann geschlossen werden.

MfG
Boyge

Social bookmarks