2013-05-09 83 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