2014-01-28 62 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的團隊位於space3。我想查找位於space3的所有承包商(本例中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; 

替換 '3' 與你想要的球隊。

注意:此查詢只返回cont_id。你沒有具體說明你需要什麼,但我至少猜測你需要cont_id來識別承包商。

相關問題