2016-03-21 7 views
0

ich zwei Tabellen zu verbinden versuchen, zweimal:SQL Inner Join Two Tables liefert beiden Sätze von Daten

  • Fixtures Tisch (Fixture ID, HomeTeamID, AwayTeamID)
  • Team Tisch (Mannschafts-ID, Teamname)

Mit der folgenden Abfrage:

CREATE VIEW [dbo].[Test1] 
AS 
    SELECT 
     XMLFixture.ID AS ID, 
     HomeTeam.Name AS HomeTeam, AwayTeam.Name as AwayTeam 
    FROM 
     [XMLSoccer-Fixture] XMLFixture 
    INNER JOIN 
     [XMLSoccer-Team] HomeTeam ON HomeTeam.ID = XMLFixture.HomeTeamID 
    INNER JOIN 
     [XMLSoccer-Team] AwayTeam ON AwayTeam.ID = XMLFixture.AwayTeamID 

Das Problem, das ich bin Das ist für jeden HomeTeam, es gibt auch die gesamte Liste der Auswärtsmannschaften. Also wenn ich 1.000 Teams habe. Es gibt 1.000 Datensätze für HomeTeam mit jedem einzelnen Team. Ich glaube, ich muss meine zwicken kommen irgendwie, aber nicht ganz sicher, wie,

Vielen Dank im Voraus

+2

Got some Beispieldaten und Probenergebnisse? – dfundako

+1

Schauen Sie sich http://sqlfiddle.com/#!9/33dabc/1 an, was zeigt, was Sie erklärt haben, aber ohne doppelte Probleme (weshalb @dfundako und Upvoters nach Beispieldaten und gewünschten Ergebnissen fragen). – JNevill

+0

@JNevill - Fixed, ich hatte meine Bedingungen falsch herum ... –

Antwort

0

Scheint, wie ich meine TeamID falsch herum hatte, das funktioniert gut:

CREATE VIEW [dbo].[Test1] 
AS 
SELECT 
    XMLFixture.ID AS ID, 
    HomeTeam.Name AS HomeTeam, AwayTeam.Name as AwayTeam 
FROM 
    [XMLSoccer-Fixture] XMLFixture 
INNER JOIN 
    [XMLSoccer-Team] HomeTeam ON XMLFixture.HomeTeamID = HomeTeam.ID 
INNER JOIN 
    [XMLSoccer-Team] AwayTeam ON XMLFixture.AwayTeamID = AwayTeam.ID 
+0

wo Sie das ID-Feld auf der linken oder der rechten Seite des Gleichen setzen, macht keinen Unterschied in SQL – CathalMF