Abfrage über zwei Tabellen, Datensatz leer, wenn nicht vorhanden
Susanne
- datenbank
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
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
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
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.