Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
Delphi 2007 Architect
|
Re: SQL | INNER JOINS über mehrere Tabellen
9. Jun 2009, 12:59
Also ich habs probiert
SQL-Abfrage ...
SQL-Code:
SELECT
// BEN
b.BEN_ID, b.RECHTE_ID, b.ABTEILUNG_ID, b.BENUTZERNAME, b.PASSWORT,
b.VORNAME, b.NACHNAME, b.GEBURTSTAG, b.EINSTELLUNGSDATUM, b.ENTLASSUNGSDATUM,
b.EINGELOGGT,
// BEN_ABTEILUNG
bab.BEN_ABTEILUNG_ID, bab.ABTEILUNGSNAME,
// BEN_ADRESSE
bad.BEN_ADRESSE_ID, bad.BENUTZER_ID, bad.KONTAKTART_ID, bad.STRASSE,
bad.POSTLEITZAHL, bad.ORT,
// BEN_EMAIL
be.BEN_EMAIL_ID, be.BENUTZER_ID, be.KONTAKTART_ID, be.EMAIL_ADRESSE,
// BEN_KONTAKTART
bk.BEN_KONTAKTART_ID, bk.BEZEICHNUNG, bk.BESCHREIBUNG,
// BEN_NOTIZEN
bn.BEN_NOTIZEN_ID, bn.BENUTZER_ID, bn.BEZEICHNUNG, bn.BESCHREIBUNG,
bn.ANGELEGT, bn.GEAENDERT,
// BEN_RECHTE
br.BEN_RECHTE_ID, br.BEZEICHNUNG, br.ADMINISTRATOR,
// BEN_TELEFON
bt.BEN_TELEFON_ID, bt.BENUTZER_ID, bt.KONTAKTART_ID, bt.RUFNUMMER
FROM BEN b, BEN_KONTAKTART bk
// INNER JOIN BEN_RECHTE
LEFT OUTER JOIN BEN_RECHTE br
ON (br.BEN_RECHTE_ID = b.RECHTE_ID)
// INNER JOIN BEN_ABTEILUNG
LEFT OUTER JOIN BEN_ABTEILUNG bab
ON (bab.BEN_ABTEILUNG_ID = b.ABTEILUNG_ID)
// INNER JOIN BEN_ADRESSE
LEFT OUTER JOIN BEN_ADRESSE bad
ON (bad.BENUTZER_ID = b.BEN_ID)
// INNER JOIN BEN_EMAIL
LEFT OUTER JOIN BEN_EMAIL be
ON (be.BENUTZER_ID = b.BEN_ID)
// INNER JOIN BEN_NOTIZEN
LEFT OUTER JOIN BEN_NOTIZEN bn
ON (bn.BENUTZER_ID = b.BEN_ID)
// INNER JOIN BEN_TELEFON
LEFT OUTER JOIN BEN_TELEFON bt
ON (bt.BENUTZER_ID = b.BEN_ID) AND (bt.KONTAKTART_ID = bk.BEN_KONTAKTART_ID)
WHERE b.BENUTZERNAME = 'Jonny'
Als Ergebnis bekomme ich zwar keinen Fehler ... aber eine Informatione "no current record for fetch operation" was soviel heißt wie kein Datensatz für fetch-operation verfügbar, wenn mich mein Englisch nicht im stich lässt
Bis auf BEN_NOTIZEN enthalten aber alle Tabellen Informationen die mit dem Benutzer verknüpft sind ...
Und so wie ich den LEFT OUTER JOIN verstanden habe ... müssten alle Daten geliefert werden zu denen eine Verknüpfung existiert
Oder hab ich das Prinzip nicht ganz verstanden?
MfG f4k3
Sascha
|