Справка по SQL-запросам - PullRequest
0 голосов
/ 01 июня 2011

У меня есть таблица с именем team

Мне нужно выбрать тренера, который также может быть игроком в команде ....

Атрибуты таблицы: (teamID, playerID, роль)

Я могу выбрать всех тренеров или всех игроков, но не знаю, как выбрать того, который оба .....

select *
from isPlaying h
where h.role= 'Coach';

Спасибо

Ответы [ 4 ]

1 голос
/ 01 июня 2011
select playerID
from isPlaying coach join isPlaying player on
   coach.playerID = player.playerID
where
   coach.role = 'Coach' and
   player.role = 'Player'
0 голосов
/ 01 июня 2011
SELECT playerID
  FROM isPlaying 
 WHERE role = 'Coach'
INTERSECT
SELECT playerID
  FROM isPlaying 
 WHERE role = 'Player';
0 голосов
/ 01 июня 2011

быстрый и грязный способ сделать это будет:

select *
from isPlaying h
where h.role = 'Player'
and h.playerID in 
 (select playerID from isPlaying where h.role = 'Coach')

Это предполагает, что тренер не мог играть за команду, отличную от той, за которую он тренируется.

0 голосов
/ 01 июня 2011
Select * 
from isplaying 
where playerid in (
                   Select playerid 
                   from playerid 
                   where role="coach"
                   );

Это вложенный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...