SQL Inner Join Zwei Tabellen liefern beide Datensätze - sql, inner-join

Ich versuche zweimal, zwei Tische zu verbinden:

  • Fixtures Tabelle (Fixture ID, HomeTeamID, AwayTeamID)
  • Team Tabelle (TeamID, 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 habe, ist das für jeden HomeTeamEs gibt auch die gesamte Liste von wegTeams. Also wenn ich 1.000 Teams habe. Es gibt 1000 Datensätze für HomeTeam mit jedem einzelnen Team zurück. Ich denke, ich muss meinen Join irgendwie anpassen, aber nicht so sicher wie,

Danke im Voraus

Antworten:

0 für die Antwort № 1

Anscheinend hatte ich meine TeamID falsch herum, 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

Speisekarte