小编典典

MySQL-加入a或b

sql

假设我有一个TABLE a,其中aCOLUMN data是要 加入 另外2个表(TABLE bTABLE c)的一个COLUMNinfo,因为我想获得inbc
事情是a.data将匹配 b.data 或只能c.data

  • 我如何获得b.infoc.info基于a

我尝试了多远:

经过多次尝试使用明显错误的语法后,我所做的最好的事情是在两个查询中:

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进行处理。但是我要进行一个庞大的过程(与我的问题无关),而不是进行良好的查询,并且该页面需要太多时间来加载。


阅读 170

收藏
2021-04-07

共1个答案

小编典典

您可以将,bc表都保留为联接,然后使用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
2021-04-07