我有2个连接正在运行以执行相同的操作(从导航链接表获取信息以将标题动态添加到导航栏)。目前,我想知道如果我需要添加两个以上的导航链接,这将意味着进一步的麻烦,我不想继续为每个select语句添加联合
SELECT header_title
FROM navlinks
INNER JOIN who_we_are ON navlinks.id = who_we_are.navlinkid
UNION
SELECT header_title
from navlinks
INNER JOIN contactpage ON navlinks.id = contactpage.navlinks_id
最佳答案
您可以尝试使用LEFT JOIN
和coalesce
函数。
SELECT distinct coalesce(who_we_are.header_title,contactpage.header_title,null)
FROM navlinks
LEFT JOIN who_we_are ON navlinks.id = who_we_are.navlinks_id
LEFT JOIN contactpage ON navlinks.id = contactpage.navlinks_id
WHERE coalesce(who_we_are.header_title,contactpage.header_title,null) is not null
sqlfiddle:http://sqlfiddle.com/#!9/9d5c85/2
关于mysql - 将查询合并为子查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51265471/