2015-03-03 60 views
0

我正在使用三個表之間的聯接查詢。我的查詢並不完全顯示我想要的結果。有三個表teamschoolgame。例如,我怎樣才能顯示勞倫斯北高中總勝(school_id = 11111)?JOIN 3個表和COUNT結果

目前查詢:使用

SELECT school.school_name 
FROM school 
INNER JOIN team ON school.school_id = team.school_id 
INNER JOIN game ON team.team_id = game.game_id 
WHERE school.school_id = 11111 

表:

SQL> Select * From Team; 

    TEAM_ID SPORT_ID SCHOOL_ID TEAM_NAME 
---------- ---------- ---------- ---------- 
     1   1  11111 WildCats 
     2   2  11111 WILDCATS 
     3   3  11111 WildCats 
     4   4  11111 WILDCATS 
     5   5  11111 WildCats 
     6   6  11111 WildCats 
     7   7  11111 WildCats 
     8   1  123134 Bears 
     9   2  123134 Bears 
     10   3  123134 BEARS 
     11   4  123134 Bears 
     12   5  123134 Bears 
     13   6  123134 BEars 

SQL> Select * From School; 

SCHOOL_ID SCHOOL_NAME     SCHOOL_TYPE 
---------- ----------------------------- ------------ 
    11546 Ivy Tech College    COLLegE 
    11090 LAWRENCE Central Grade School GRADE SCHOOL 
    11111 Lawrence NORTH High School HIGH SCHooL 
    19283 Howe High SCHOOL    High SchooL 
    123134 Lawrence Central High School HIGH SCHOOL 
     192 Little Big Horn Grade School GRADE SCHOOL 


SQL> Select * From Game; 

    TEAM_ID GAME_DATE R 
---------- --------- - 
     1 10-SEP-98 w 
     1 12-SEP-98 W 
     2 17-SEP-98 w 
     2 18-SEP-98 W 
     3 18-SEP-98 w 
     3 11-SEP-98 W 
     4 20-SEP-98 L 
     4 21-SEP-98 l 
     5 21-SEP-98 L 
     5 19-SEP-98 l 
     6 26-SEP-98 L 
     6 27-SEP-98 W 
     7 28-SEP-98 w 
     7 29-SEP-98 W 
     8 11-OCT-98 W 
     8 12-OCT-98 w 
     9 13-OCT-98 L 
     9 14-OCT-98 L 
     10 14-OCT-98 L 
     11 15-OCT-98 L 
     12 16-OCT-98 W 
     13 17-OCT-98 W 
     11 18-OCT-98 W 
     12 19-OCT-98 W 
     13 11-NOV-98 
     11 12-NOV-98 

回答

3

試試這個

SELECT count(*) as Total_wins FROM school INNER JOIN team ON school.school_id = team.school_id INNER JOIN game ON team.team_id = game.game_id WHERE school.school_id = 11111 and game.r = 'W' 
0

您也將有where子句中指定運動ID。

where school.school_id = 11111 and 
    team.sportid = (what ever the sport id you want to see) 
1

您可以在schoolnameGroup By使用COUNT隨着Where條款。

SELECT school.school_name, COUNT(game.R) as TotalWins 
FROM school INNER JOIN team 
     ON school.school_id = team.school_id 
    INNER JOIN game 
     ON team.team_id = game.game_id 
WHERE 
    school.school_id = 11111 
    AND game.R = 'W' 

如果你這樣做是爲了在一個學校,你可以只取出Group By,但如果你想要得到的計數所有學校,你需要應用Group ByWhere條款刪除Chool_id過濾器。

+4

你不需要'集團BY'如果你只是做一個學校。 – Barmar 2015-03-03 06:02:17