将查询组合成子查询

ldioqlga  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(258)

我有两个连接在运行,做同样的事情(从nav links表获取信息,动态地向navbar添加标题)。目前我在想,如果我需要添加2个以上的导航链接,这将意味着进一步的麻烦,我不想继续为每个select语句添加一个union

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
w6lpcovy

w6lpcovy1#

你可以试着用 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号

相关问题