如果column为null,如何从Mysql的另一个表中导入某些列?

问题描述

当nav_page不为null时,我如何将page_name导入为nav_label并将page_slug导入为nav_url?

我不知道有一个更好的主意来进行网站导航,以便在我获取导航时我总是希望从表格页面中获取页面名称,以防页面名称或页面标记有任何更改。

我已经尝试过此查询,但对我不起作用:

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_name | page_slug |
+---------+-----------+-----------+
|       1 | Home      | /home     |
|       2 | Contact   | /contact  |
+---------+-----------+-----------+

导航表

+--------+-----------+------------------------+----------+----------+
| nav_id | nav_label |        nav_url         | nav_page | nav_type |
+--------+-----------+------------------------+----------+----------+
|      1 | Google    | https://www.google.com | NULL     | custom   |
|      2 | NULL      | NULL                   | 2        | page     |
+--------+-----------+------------------------+----------+----------+

解决方法

如果我正确地关注您,则可以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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...