假设我有一个 TABLE a
,其中一个 COLUMN data
是要join 其他 2 个表的数据( TABLE b
和 TABLE c
) 因为我想在 b
或 c
中获取 COLUMN info
.
问题是 a.data
将仅与 b.data
或仅与 c.data 匹配
。
- 如何根据
a
获取b.info
或c.info
?
我试了多远:
在使用明显错误的语法进行多次尝试后,我做的最好的是在 2 个查询中:
SELECT b.info FROM a INNER JOIN b ON a.data = b.data
SELECT c.info FROM a INNER JOIN c ON a.data = c.data
我想实现这样的东西:
SELECT alias.info FROM a INNER JOIN (b OR c) AS alias ON a.data = alias.data
我为什么要这样做
实际上,我可以使用 PHP 获取我想要的数据并使用它。但是我正在做一个巨大的过程(与我的问题无关)而不是一个好的查询,并且页面加载时间太长。
最佳答案
您可以左连接到两个 b
和 c
表,然后使用 info
字段不是 NULL
:
select coalesce(b.info, c.info) info
from a
left join b on a.data = b.data
left join c on a.data = c.data
关于MySQL - 连接 a 或 b,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49944850/