如何解决如果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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。