Moni: Zuordnungsproblem, bei Abfrage über zwei Tabellen

Ich habe zwei MYSQL Tabellen
in der einen stehen meine Adessen

table1
-------
id
name
strasse

in der zweiten stehen die manchmal zu der gleichen ID wie in table 1 andere adressen
jetzt möchte ich mir alle Datensätze aus der table1 anzeigen lassen, aber nur wenn in der table2 kein Datensatz zur gleichen id da ist.

Wenn ein Datensatz da ist funktioniert es so:

select
a.name
from
table1 a,
table2 b
WHERE a.id = b.id

dann werden mir alle namen angezeigt, zu der es in table2 weitere Informationen gibt, ich möchte aber nur die Namen haben, wenn es keine Informationen gibt.

Also habe ich einfach aus dem = ein != gemacht,

select
a.name
from
table1 a,
table2 b
WHERE a.id != b.id

doch dann bekomme alle Einträge aus der table1 und die die in table2 keine Zuordnung haben kommen doppelt die eine zuordnung haben kommen einfach.

Kann mir da jemand weiterhelfen?

Moni

  1. Moin Moni,

    Ich habe zwei MYSQL Tabellen
    in der einen stehen meine Adessen

    table1

    id
    name
    strasse

    in der zweiten stehen die manchmal zu der gleichen ID wie in table 1 andere adressen
    jetzt möchte ich mir alle Datensätze aus der table1 anzeigen lassen, aber nur wenn in der table2 kein Datensatz zur gleichen id da ist.

    Dafür brauchst du einen expliziten JOIN:

      
    SELECT a.name  
    FROM table1 a  
    LEFT JOIN table2 b ON a.id = b.id  
    WHERE b.id IS NULL  
    
    

    Nähere Infos über JOINs findest du in einer Einführung zu SQL.

    LG,
     CK