我有一个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查询来实现?还是我需要执行查询以获取团队的位置,然后进行第二次查询以找到该位置的所有承包商?

最佳答案

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

10-02 14:04