Einzelnen Beitrag anzeigen

Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#7

Re: SQL | INNER JOINS über mehrere Tabellen

  Alt 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
  Mit Zitat antworten Zitat