如果列为空,我如何从 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 的另一个表中导入一些列?的主要内容,如果未能解决你的问题,请参考以下文章

利用sqoop从 hive中往mysql中导入表出现的问题

如果数据库列为空,则过滤数组 symfony 2

忽略空列以将数据导出到 php mysql 中的 csv 文件

Symfony 2 如何从另一个包中导入 LESS 文件

如果另一列为空,则选择一列

mysql 复制表结构 / 从结果中导入数据到新表