![]() |
[SQL] Inner Join Anweisung?!
Hi,
ich habe ein Problem bei einer INNER JOIN SQL-Anweisung. Ich habe 3 Tabellen und möchte aus einer Tabelle die Daten aus drei Tabellen ausgeben. Wie kann ich das machen? Hier meine Tabellen: Tabelle Teams:
Code:
Die Ausgabe soll anhand der Tabelle Spiele erfolgen und soll im ersten Fall z.B. so aussehen:
TeamID Team
1 ABC 2 CDE 3 FGH Tabelle Liga: LigaID Liga 1 A-Liga 2 B-Liga 3 C-Liga Tabelle Spiele: SpielID LigaID HeimTeamID AuswaertsTeamID 1 1 1 2 2 1 2 3 3 1 3 1
Delphi-Quellcode:
Kann mir jemand bei der SQL-Anweisung helfen?
1 A-Liga ABC CDE
|
Re: [SQL] Inner Join Anweisung?!
SQL-Code:
SELECT spielid,
(SELECT liga FROM liga WHERE ligaID = s.ligaID), (SELECT team FROM team WHERE teamid = s.heimteamID), (SELECT team FROM team WHERE teamid = s.auswaertsteamID) FROM spiele s |
Re: [SQL] Inner Join Anweisung?!
Delphi-Quellcode:
select a.SpielId, pb.Liga,c.Team Heim,d.Team Gast from spiele a,Liga b,Teams c,Teams d where b.LigaId=a.LigaId and c.TeamID=a.HeimTeamId and d.TeamID=a.AuswTeamId
|
Re: [SQL] Inner Join Anweisung?!
Benötigt man da keine INNER JOIN?!
Okay, es funktioniert, aber ist das die "eleganteste" Lösung? Nachtrag: Ich benötige eine variable Eingabe von der SpielID, d.h. das muss ich doch irgendwie in die Abfrage mit einbauen, oder? |
Re: [SQL] Inner Join Anweisung?!
Das Statement von mashutu ist ein INNER JOIN ;)
|
Re: [SQL] Inner Join Anweisung?!
Hi,
versuchs mal so:
SQL-Code:
SpielID wird dann als Parameter z.B. in einer TQuery gesetzt...
select s.SpielID, l.Liga, th.Team, ta.Team
from Spiele s join Liga l on l.LigaID = s.LigaID join Team th on th.TeamID = s.HeimTeamID join Team ta on ta.TeamID = s.AuswaertsTeamID where s.SpielID = :SpielID Edit: Zitat:
|
Re: [SQL] Inner Join Anweisung?!
Danke, NormanNG...das funktioniert! :-)
Warum ist das von mashutu ein INNER JOIN? Ich dachte da bräuchte man so Statements wie INNER, OUTER, LEFT/RIGHT JOIN? |
Re: [SQL] Inner Join Anweisung?!
Ohne Angabe handelt es sich immer um einen inner join
|
Re: [SQL] Inner Join Anweisung?!
Zitat:
|
Re: [SQL] Inner Join Anweisung?!
Mal anders formatiert:
SQL-Code:
In anderer Syntax:
select a.SpielId, pb.Liga,c.Team Heim,d.Team Gast
from spiele a,Liga b,Teams c,Teams d where b.LigaId=a.LigaId and c.TeamID=a.HeimTeamId and d.TeamID=a.AuswTeamId
SQL-Code:
select a.SpielId, pb.Liga,c.Team Heim,d.Team Gast
from spiele a inner join Liga b on b.LigaId=a.LigaId inner join Teams c on c.TeamID=a.HeimTeamId inner join Teams d on d.TeamID=a.AuswTeamId |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz