2012-11-01 50 views
0

挺難解釋,但說我有一個名爲「團隊」表,它包含了5支球隊,像這樣:使用SQL創建足球裝置?

team_id, teamname, manager 
    1,  Team1, 1 
    2,  Team2, 10 
    3,  Team3, 3 
    4,  Team4, 5 
    5,  Team5, 6 

我需要創建另一個表中查找與此類似(名爲例如TeamFixtures)

id, HomeTeam, HomeScore, AwayScore, AwayTeam 
        NULL  NULL 

我該如何讓HomeTeam和AwayTeam成爲'球隊'表的team_id?

身份證需要爲每個球隊這樣做,所以他們互相打兩次主客場比賽。

有一個查詢,能做出這樣快給我,而不是打字燈具1by1所在

+0

你怎麼會知道某支球隊是'hometeam'或'awayteam'? –

+0

我不明白,他們兩次打對方,所以一個總是要成爲客隊,一個總是在家。 1會玩2,然後2會玩1.大聲笑難以解釋:S – Koala

+2

聽起來像我的功課... – JakeParis

回答

2

當一個關係的屬性是他們另一個關係的關鍵,它被稱爲Foreign Key

在您的TeamFixtures表的情況下,您將有兩個外鍵hometeamawayteam

CREATE聲明會是什麼樣子:

CREATE TABLE teamfixtures(
    ... 
    hometeam INT, 
    awayteam INT, 
    ... 
    CONSTRAINT fk_hometeam FOREIGN KEY(hometeam) REFERENCES teams, 
    CONSTRAINT fk_awayteam FOREIGN KEY(awayteam) REFERENCES teams, 
    CONSTRAINT ck_teams CHECK(hometeam <> awayteam) 
    ) 
+0

+1不要忘記,你需要一個獨特的複合鍵'hometeam'和'awayteam'列所以他們不能玩對方 – AlexP

+0

@AlexP啊是的..雖然支票應該覆蓋。 – jsj