2014-01-28 2 views
0

У меня вопрос MySQL, мне интересно, есть ли ответы на использование объединений. Я заранее извиняюсь, если заголовок вводит в заблуждение или вводит в заблуждение.Использовать результат запроса в том же запросе?

У меня есть 2 таблицы: команды, Подрядчики

TEAMS 
|team_id | location| 
-------------------- 
| 1 | space1 | 
-------------------- 
| 2 | space2 | 
-------------------- 
| 3 | space3 | 
-------------------- 

CONTRACTORS 
|cont_id | location| team_id| 
----------------------------- 
| 1 | space1 | 1 | 
----------------------------- 
| 2 | space1 | 0 | 
----------------------------- 
| 3 | space3 | 3 | 
----------------------------- 
| 4 | space3 | 3 | 
----------------------------- 
| 5 | space3 | 0 | 
----------------------------- 

Я хотел бы создать запрос, который находит все подрядчики, которые находятся в определенном месте. Проблема в том, что я знаю только team_id. (team_id = 0 в таблице ПОДРЯДЧИКИ означает, что в настоящее время подрядчик не является частью команды).

Например, мне дано team_id = 3. Команда с team_id = 3 находится в пространстве3. Я хочу найти всех подрядчиков, которые находятся в пространстве3 (cont_id = 3, 4, 5 в этом примере).

Есть ли способ достичь этого с помощью одного запроса MySQL? Или мне нужно выполнить запрос, чтобы получить местоположение команды, а затем второй запрос, чтобы найти всех подрядчиков в этом месте?

+0

Просто быстро спасибо тем, кто принял момент, чтобы помочь мне. :) – brybott

ответ

0
select location 
from CONTRACTORS 
inner join TEAMS on TEAMS.location = CONTRACTORS.location and TEAMS.team_id = 3 
+0

Мне пришлось выбирать CONTRACTORS.location, но в остальном это сработало отлично, спасибо. – brybott

0

Вы можете использовать присоединиться

SELECT  t.*,c.* 
FROM   TEAMS 
INNER JOIN CONTRACTORS c 
ON   c.team_id = t.team_id 
WHERE   t.team_id = 3 
0

один SQL запрос:

SELECT cont_id 
FROM teams, contractors 
WHERE teams.location = contractors.location 
AND teams.team_id = 3; 

Replace '3' с командой вы хотите.

Примечание: Этот запрос возвращает только cont_id. Вы не указали, что именно вам нужно, но я предполагаю, что по крайней мере вам нужен cont_id для определения подрядчиков.

Смежные вопросы