如果列为空,我如何从 Mysql 中的另一个 table 导入一些列?

How i can import some columns from another table in Mysql if column is null?

我该怎么做才能在 nav_page 不为空时将 page_name 导入为 nav_label 并将 page_slug 导入为 nav_url?

我不知道为我的网站做导航的更好主意,当我获取导航时,我总是想从 table 页面获取页面名称,以防在页面的名称或别名。

我试过这个查询但对我不起作用:

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

页数Table

+---------+-----------+-----------+
| page_id | page_name | page_slug |
+---------+-----------+-----------+
|       1 | Home      | /home     |
|       2 | Contact   | /contact  |
+---------+-----------+-----------+

导航Table

+--------+-----------+------------------------+----------+----------+
| 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