Forum: SQL |
Thema:
Re: SQL Abfrage Problem |
Von:
Thomas Golla (
22.09.2005 13:03) |
Hallo Karsten,
hier ein kleines (sehr einfach konstruiertes) Beispiel welches dich in die richtige Richtung "weisen" soll :-)
(Sofern ich deine Frage richtig verstanden habe!)
Es gibt 2 Tabellen
Tabelle "Teilnehmer" hat 2 Spalten, die id und den Namen des Teilnehmers
ID Name
1 Udo
2 Karl
3 Willi
4 Peter
Tabelle "Pokale" hat eine Spalte TeilnehmerId und eine Spalte name die den Pokalnamen anzeigt.
Name TeilnehmerId
WOZ 1
WOZ 3
KLA 3
Also hat Udo den WOZ Pokal und Willi den WOZ und den KLA Pokal
Dies bekommt man auch mit der SQL-Anweisung:
Select teilnehmer.name, pokale.name
from teilnehmer, pokale
where teilnehmer.id = pokale.teilnehmerid
order by teilnehmer.name
Ergebnis:
Udo WOZ
Willi WOZ
Willi KLA
Möchte man nun alle Teilnehmer haben und deren Pokale (oder deren keine) dann sieht
die SQL-Anwesiung so aus:
Select teilnehmer.name, pokale.name
from teilnehmer left join pokale on teilnehmer.id = pokale.teilnehmerid
order by teilnehmer.name
Ergebnis:
Karl NULL
Peter NULL
Udo WOZ
Willi WOZ
Willi KLA
und wenn man es "schön" haben will dann:
Select teilnehmer.name, case when pokale.name is null then 'hat kein Pokal' else pokale.name end
from teilnehmer left join pokale on teilnehmer.id = pokale.teilnehmerid
order by teilnehmer.name
Ergebnis:
Karl hat kein Pokal
Peter hat kein Pokal
Udo WOZ
Willi WOZ
Willi KLA
hoffe das hilft dir ein bissl :-)
LG
Tom
Betreff |
Von |
Datum |
|
  |
Re: SQL Abfrage Problem
Hi,<br><br>danke für Deine ausführliche Hilfe.<br>Ich habe schon versucht an der Stelle den inner durch ein Left Join zu ersetzen. Es gibt immer eine Fehlermeldung, da die Abfrage duch über einige Tabellen... |
 |
 |
 |
|
|
G.
Guest
|
22.09.2005 13:41 |
|
  |
Re: SQL Abfrage Problem
hallo Karsten,<br><br>ich weiß nicht, obs daran liegt, aber was mir bei deiner SQL-Anweisung aufgefallen ist, ist die Klammerung, ich hätt das alles einfach hinter einander geschrieben, ...<br><br>FROM tbl1... |
 |
 |
 |
|
|
Jens
Buthe
|
22.09.2005 14:11 |
|
|
G.
Guest
|
22.09.2005 14:36 |
|
|
G.
Guest
|
22.09.2005 14:45 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!