簡體   English   中英

在同一查詢中使用查詢結果?

[英]Use result from query in same query?

我有一個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。 (CONTRACTORS表中的team_id = 0表示承包商目前不屬於團隊)。

例如,我給出的team_id = 3.隊與team_id = 3位於空間3。 我想找到所有位於space3的承包商(在此示例中,cont_id = 3、4、5)。

有沒有一種方法可以通過單個MySQL查詢來實現? 還是我需要執行查詢以獲取團隊的位置,然后進行第二次查詢以找到該位置的所有承包商?

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

您可以使用加入

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

一個SQL查詢:

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

將“ 3”替換為所需的團隊。

注意:此查詢僅返回cont_id。 您沒有指定確切的需求,但是我猜測至少您需要使用cont_id來識別承包商。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM