2015-11-04 60 views
0

我有三個表:加入戰隊,城市和日程安排表中的SQL

隊,城市和計劃

領域:

teams: teamid, cityid, and teamname 
city: cityid, cityname, stateid 
scheduless: teamid, oppteamid 

我現在可以加入的時間表和團隊表與以下SQL

SELECT t1.teamname, t1.cityid, t2.teamname, t2.cityid, COUNT(t2.cityid) 
FROM schedules s 
INNER JOIN teams t1 ON s.teamid = t1.teamid 
INNER JOIN teams t2 ON s.oppteamid = t2.teamid 
GROUP BY t2.cityid 

這給了我團隊名稱,在哪個團隊將發揮。

如何添加一個額外的連接以獲得團隊要玩的城市名稱。

我已經試過:

SELECT t1.teamname, t1.cityid, c1.cityname t2.teamname, t2.cityid, c2.cityname 
FROM schedules s 
INNER JOIN teams t1 ON s.teamid = t1.teamid 
INNER JOIN city c1 ON c1.cityid = t1.cityid 
INNER JOIN teams t2 ON s.oppteamid = t2.teamid 
INNER JOIN city c2 ON c2.cityid = t2.cityid 

感謝。

+0

@Brandon,我剛剛更新了我的嘗試 – user1093111

回答

0

讓我們這些表爲例:

create table teams (teamid int, cityid int, teamname varchar(100)); 
insert into teams values (1, 1, 'Chicagoans'), (2, 2, 'Dallasfolks'), (3, 3, 'Huskonians'); 

create table city (cityid int, cityname varchar(100), stateid char(2)); 
insert into city values (1, 'Chicago', 'IL'), (2, 'Dallas', 'TX'), (3, 'Lincoln', 'NE'); 

create table scheduless(teamid int, oppteamid int); 
insert into scheduless values (1, 2), (1, 3), (2, 3); 

你可以使用這樣的查詢,假設scheduless的teamid是舉辦活動的團隊。

select 
    t.teamname as hometeam, 
    t.cityid as homecity, 
    c.cityname as homecityname, 
    opp.teamname as opponent, 
    opp.cityid as opponentcity, 
    copp.cityname as opponentcityname, 
    count(*) as number_of_games 
from scheduless s 
inner join teams t on s.teamid = t.teamid 
inner join teams opp on s.oppteamid = opp.teamid 
inner join city c on t.cityid = c.cityid 
inner join city copp on opp.cityid = copp.cityid 
group by 
    t.teamname, 
    t.cityid, 
    c.cityname, 
    opp.teamname, 
    opp.cityid, 
    copp.cityname; 

結果:

+-------------+----------+--------------+-------------+--------------+------------------+-----------------+ 
| hometeam | homecity | homecityname | opponent | opponentcity | opponentcityname | number_of_games | 
+-------------+----------+--------------+-------------+--------------+------------------+-----------------+ 
| Chicagoans |  1 | Chicago  | Dallasfolks |   2 | Dallas   |    1 | 
| Chicagoans |  1 | Chicago  | Huskonians |   3 | Lincoln   |    1 | 
| Dallasfolks |  2 | Dallas  | Huskonians |   3 | Lincoln   |    1 | 
+-------------+----------+--------------+-------------+--------------+------------------+-----------------+ 
+0

感謝。這有很大幫助 – user1093111