MySQL查询加入

标签 mysql

我有一个 MySQL 问题。与this other question that I asked previously有关, 但略有不同。

我有 2 个表:团队、承包商

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

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

如果我有一个 team_id,我想创建一个查询来查找位于给定 team_id 位置并且仅属于给定 team_id 或具有 team_id = 0 的所有承包商. (CONTRACTORS 表中的 team_id = 0 表示承包商当前不属于团队)。

例如,我得到了 team_id = 3.team_id = 3的团队位于space3。我想找到位于 space3 且仅属于 team_id = 3 的承包商或 team_id = 0 (本例中的 cont_id = 3、4、5)。

有没有办法通过单个 MySQL 查询来实现这一点?

最佳答案

试试这个:

select cont_id, c.team_id, c.location 
from CONTRACTORS c join TEAM t
on c.team_id = t.team_id 
where c.team_id = GIVEN_TEAM_ID or c.team_id = 0

关于MySQL查询加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21475718/

相关文章:

php - 在单选查询中获取两个具有匹配 ID 的表记录

php - MySQL 数据无限滚动

mysql - 查询可以获取玩家姓名(如果不为空)

php - 拉维尔 4 : custom login and check password

PHP 和 MySQL - 未定义索引 : VIN when trying to do a small query using PHP

mysql - 如何查找多列匹配的重复项

PHP 和 MySQL TRUNCATE TABLE 使用 AMFPHP 返回 false

php - MySQL DELETE 随机且非常罕见地失败

mysql - SSIS 链接到 mySQL 服务器

MySQL 平均每 24 小时 1 个月