Susanne: Abfrage über zwei Tabellen, Datensatz leer, wenn nicht vorhanden

Ich möchte über zwei Tabellen (mysql) abfragen:
In der einen Tabelle sind alle meine Namen Daten,
in der zweite eine Liste mit allen Adressen.

So lange alle Adressen vorhanden sind ist alles OK.
Doch wenn eine Adresse fehlt,

a.IDstadt=b.id

als d.id nicht vorhanden ist wird der betreffende Datensatz nicht angezeigt.
Ich möchte aber das der Datensatz trotzdem angezeigt wird, vieleicht sogar mit "nicht vorhanden"

  
select    	  
a.name, a.vorname, b.stadt  
from  
table1 a,  
table2 b  
WHERE  
a.IDstadt=b.id  
ORDER BY a.id DESC  
LIMIT 30  

kann mir da jemand helfen
Susanne

  1. Hi!

    Ja. Du sagst suche mir alles wo a und b gleich sind. Wo es also nur a gibt ist b nicht gleich und es wird nciht ausgegeben.

    Du suchst einen left outer join oder eine Unterabfrage:

    http://de.wikipedia.org/wiki/SQL#Linker_.C3.A4u.C3.9Ferer_Verbund

    --
    Signaturen sind bloed.
    1. http://de.wikipedia.org/wiki/SQL#Linker_.C3.A4u.C3.9Ferer_Verbund

      Danke, genau so

      select  
      a.name, a.vorname, b.stadt  
      from  
      table1 a  
      LEFT OUTER JOIN  
      table2 b  
      ON  
      a.IDstadt=b.id  
      
      

      Doch wie kann ich ein leeres Feld mit einem 'nicht vorhanden' ausgeben?

      Susanne

      1. Hiho!

        Danke, genau so

        select

        a.name, a.vorname, b.stadt
        from
        table1 a
        LEFT OUTER JOIN
        table2 b
        ON
        a.IDstadt=b.id

        
        >   
        > Doch wie kann ich ein leeres Feld mit einem 'nicht vorhanden' ausgeben?  
          
        Versuch mal ifnull(b.stadt, "nicht vorhanden")  
        
        -- 
        Signaturen sind bloed.