2013-05-09 125 views
2

我有兩個表MySQL的兩個表兩列COUNT

球隊 - TEAM_ID和TEAM_NAME(除其他東西)
SCHEDULE - game_id,team_a,team_b,team_a_id,team_a_id(除其他東西)

我想創建一個結果,我找到的次數team_name(或team_id)顯示了在任一列team_ateam_b(或team_a_idteam_b_id

TEAMS
TEAM_ID TEAM_NAME
1001紐約
1011克利夫蘭
1021底特律
1031休斯敦

SCHEDULE
game_id team_a team_b team_a_id team_b_id
1紐約克利夫蘭1001 1011
2新約克底特律1001 1021
3克利夫蘭霍斯噸1011 1031

答案: 紐約2 克利夫蘭2 底特律1 休斯頓1

+0

你可以給樣品記錄? – 2013-05-09 15:25:18

回答

0

嘗試是這樣的:

select count(*) 
from teams t 
join schedule s on (s.team_a = t.team_name OR s.team_b = t.team_name) 
1

也許除非我失去了一些東西

SELECT count(*) 
FROM teams 
WHERE $teamID IN (team_a, team_b) 
0

看起來很簡單。只需選擇一個計數,然後使用WHERE OR clause

SELECT COUNT(*) 
FROM schedule 
WHERE team_a = 'Team Name' 
OR team_b = 'Team Name' 

或者:

WHERE team_a_id = 'Team ID' 
OR team_b_id = 'Team ID' 
2

一種方式

Select t.team_name,Sum(allteams.teamcount) as NumberOfTimes 
From teams t 
inner join(
select team_a_id as team_ID, 1 as teamcount From Schedule 
Union 
Select team_b_id, 1 From Schedule 
) allteams 
on allteams.Team_ID = t.Team_ID 
Group By t.team_name