2

私は2つのテーブルを持っています

TEAMS - team_id および team_name (その他のもの)
SCHEDULE - game_id、team_a、team_b、team_a_id、team_a_id (その他のもの)

回数team_name(またはteam_id) が列team_aまたはteam_b(またはteam_a_idまたはteam_b_id)に表示される結果を作成しようとしています。

チーム team_id
チーム名
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

4

4 に答える 4

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
于 2013-05-09T15:36:18.610 に答える
1

多分

SELECT count(*)
FROM teams
WHERE $teamID IN (team_a, team_b)
于 2013-05-09T15:27:14.837 に答える
0

私が何かを見逃していない限り、かなり単純に思えます。カウントを選択し、WHERE OR 句を使用するだけです。

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'
于 2013-05-09T15:32:58.667 に答える
0

次のようなことを試してください:

select count(*)
from teams t
join schedule s on (s.team_a = t.team_name OR s.team_b = t.team_name)
于 2013-05-09T15:38:54.117 に答える