SQL Inner Join两个表,提供两组数据

时间:2016-03-21 16:23:20

标签: sql inner-join

我想加入两张桌子,两次:

  • Fixtures表(Fixture ID,HomeTeamID,AwayTeamID)
  • Team表(TeamID,TeamName)

使用以下查询:

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

我遇到的问题是,对于每个HomeTeam,它还会返回整个远离球队列表。所以,如果我有1000个团队。每个团队都会为HomeTeam返回1,000条记录。我想我需要以某种方式调整我的加入,但不太确定如何,

提前致谢

1 个答案:

答案 0 :(得分:0)

似乎我的TeamID方向错误,这很好用:

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