如果列为空,我如何从 Mysql 的另一个表中导入一些列?
Posted
技术标签:
【中文标题】如果列为空,我如何从 Mysql 的另一个表中导入一些列?【英文标题】:How i can import some columns from another table in Mysql if column is null? 【发布时间】:2020-10-14 16:02:36 【问题描述】:我该如何做到这一点,当 nav_page 不为空时,它将 page_name 作为 nav_label 和 page_slug 作为 nav_url 导入?
我不知道为我的网站进行导航的更好主意,当我获取导航时,我总是想从表格页面中获取页面名称,以防页面名称或 slug 发生任何更改.
我已尝试过此查询,但对我不起作用:
SELECT navigations.*, (CASE WHEN (navigations.nav_page IS NOT NULL) THEN pages.page_name AS page_label, pages.tr_slug AS page_url ELSE navigations.nav_label AS page_label, navigations.nav_url AS page_url END) FROM navigations, pages
页表
+---------+-----------+------------+ | page_id |页名 | page_slug | +---------+-----------+------------+ | 1 |主页 | /主页 | | 2 |联系方式 | /联系方式 | +---------+-----------+------------+导航表
+--------+-----------+------------+--- --------+----------+ |导航ID |导航标签 |导航网址 |导航页 |导航类型 | +--------+-----------+------------+--- --------+----------+ | 1 |谷歌 | https://www.google.com |空 |定制 | | 2 |空 |空 | 2 |页 | +--------+-----------+------------+--- --------+----------+【问题讨论】:
【参考方案1】:如果我没听错,你可以left join
:
select n.nav_id,
coalesce(p.page_slug, n.nav_url) as nav_url,
coalesce(p.page_name, n.nav_label) as nav_label,
n.nav_type
from navigations n
left join pages p on page_id = n.nav_page
【讨论】:
以上是关于如果列为空,我如何从 Mysql 的另一个表中导入一些列?的主要内容,如果未能解决你的问题,请参考以下文章