mysql - 连接同一主键 MYSQL 上的三个表

标签 mysql sql

我正在尝试在第一个表主键上连接三个表,其中其他两个表都拥有外键。

示例

SELECT *
FROM team_member
INNER JOIN bench_member
ON team_member.team_member_id=bench_member.team_member_id
INNER JOIN player
ON team_member.team_member_id=player.team_member_id

每个连接都是单独工作的,但是当我尝试将它们组合起来时。它给了我空结果集。真的很困惑这里发生了什么。

最佳答案

假设每个 team_member 要么是 bench_member 要么是一名球员,而不是两者兼而有之,那么您可能想要这样的东西。 SQLFiddle

select t.*, 
    case when b.team_member_id is not null then 'Bench'
    when p.team_member_id is not null then 'Player'
end
from team_member t
left join bench_member b on t.team_member_id = b.team_member_id
left join player p on t.team_member_id = p.team_member_id

关于mysql - 连接同一主键 MYSQL 上的三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807012/

相关文章:

sql - 在与 WHERE 共享的计算上优化 MySQL ORDER BY

PHP mySQL 数据库更新值不起作用

mysql - 连接表中限制1?

sql - 确定 SQL 中事件的日期顺序(针对每个组)

带有查询变量的 MySQL 子查询

php - 在不求助于 mysql_insert_id() 的情况下,在单个查询中将 SQL 关系插入到 2 个表

php - Codeigniter 2.1 - MySQL 连接

php - 通过 while 和 for 循环更新表

sql - 对于所有评论者对,使得两位评论者都对同一部电影进行了评级,返回两位评论者的姓名

SQL在子查询中使用来自join的表