AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[SQL] Inner Join Anweisung?!

Ein Thema von Yheeky · begonnen am 24. Okt 2008 · letzter Beitrag vom 24. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

[SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 09:33
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:
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
Die Ausgabe soll anhand der Tabelle Spiele erfolgen und soll im ersten Fall z.B. so aussehen:
1   A-Liga   ABC   CDE Kann mir jemand bei der SQL-Anweisung helfen?
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 09:51
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
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#3

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 09:56
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
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#4

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 10:08
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 10:19
Das Statement von mashutu ist ein INNER JOIN
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#6

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 10:20
Hi,

versuchs mal so:
SQL-Code:
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
SpielID wird dann als Parameter z.B. in einer TQuery gesetzt...


Edit:
Zitat:
Das Statement von mashutu ist ein INNER JOIN
Stimmt, hab ich aber wegen der Delphi-Tags auch nicht sofort gesehen
Gruß
Norman
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#7

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 10:39
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 11:21
Ohne Angabe handelt es sich immer um einen inner join
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 12:10
Zitat von mkinzler:
Ohne Angabe handelt es sich immer um einen inner join
So wie oben ist es aber eher ein Kreuzprodukt, welches der DBOptimizer hoffentlich in einen Join auswertet... oder irre ich mich?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: [SQL] Inner Join Anweisung?!

  Alt 24. Okt 2008, 12:44
Mal anders formatiert:
SQL-Code:
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
In anderer Syntax:
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
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz