我有一个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