Mehrfacher join

Mariexshx

Fleissiger Benutzer
Beiträge
57
Hallo, ist es möglich, dass man jeweils zwei Tabellen miteinander joint und diese dann nochmal miteinander joint ?

Ich soll eine Abfrage schreiben die berechnet, welche Kunden ihre Pauschalreise billiger gebucht haben, durch einzelnen Buchen von an Abreise und Unterkunft. Ich habe die Tabellen Kunde Bucht Unterkunft, Kunde bucht anabreise, Pauschalreise hat anabreise und Pauschalreise hat Unterkunft. Meine Idee wäre halt erstmal Paschalreise hat Unterkunft und Pauschalreise hat anabreise zu joinen damit ich überhaupt die Kombination habe die gehen und vor dort dann zu Kunde bucht Unterkunft und Kunde bucht anabreise

Es gibt nämlich auch Kunden die nur eine anabreise buchen. Die aber halt zur keiner Pauschalreise gehört bzw. zu keiner Unterkunft und dann halt keine Kombination ergibt.

Kann mir jemand helfen ?
 
Werbung:
Wenn Du eine funktionierende Abfrage hast
und
noch eine funktionierende Abfrage
und beide haben passende Schlüssel
dann kannst Du darüber joinen.

Select * from
(funktionierende Abfrage) a
join
(funktionierende Abfrage) b
on a.id = b.id
 
Du kannst ein und dieselbe Tabelle mehrfach joinen, falls das der Kern Deiner Frage ist. Du solltest dann jeweils einen Alias vergeben, um gezielt in der JOIN oder WHERE - Condition (und auch im SELECT) darauf zugreifen zu können. Stelle Dir vor, Du hast eine Tabelle der Mannschaften. Und Du hast Spiele. Zu jedem Spiel mußt die die Mannschaftstabelle 2 mal joinen, einmal als Heim und einmal als Gast.
 
SELECT *
FROM pauschalreise_hat_anabreise
JOIN pauschalreise_hat_unterkunft
USING(PauschalreiseID)
JOIN pauschalreise
ON pauschalreise.id = pauschalreise_hat_anabreise.PauschalreiseID
JOIN ( select kunde_bucht_unterkunft.PersoNr, kunde_bucht_anabreise.AnAbreiseID AS anab, kunde_bucht_unterkunft.UnterkunftID AS unter,
(kunde_bucht_anabreise.Preis + kunde_bucht_unterkunft.Preis) AS Buchungspreis
FROM kunde_bucht_anabreise, kunde_bucht_unterkunft
WHERE kunde_bucht_anabreise.PersoNr = kunde_bucht_unterkunft.PersoNr)
ON pauschalreise_hat_anabreise.AnAbreiseID = anab AND
pauschalreise_hat_unterkunft.UnterkunftID = unter
WHERE Preis> Buchungspreis


ist dieser Join am Ende mit diesen zwei Schlüsseln überhaupt möglich leider funktioniert die Anfrage nicht aber die Anfragen separat gehen schon nur der join geht nicht
 
Werbung:
"funktioniert nicht" ist keine Fehlermeldung. Code der im MSSQL Management Studio ausgeführt wird liefert immer eine Meldung, womit machst du die Abfrage?

Hinter der Unterabfrage im Klammern, Zeile 10, fehlt ein Tabellenalias. Die Unterabfrage (Join) liefert sicherlich ein Ergebnis, die Spalten daraus ("anab" und "unter") werden aber nur mit Tabellenalias funktionieren.
 
Zurück
Oben