MySQL - 如果列为空,则从另一个表中检索值

12

假设我有一个表格,其中包括名称、ID以及引用另一个表的ID的外键等几个值。名称可以为空。当我从这个表格中选择所有记录时,如果名称不为空,我想要获取它。如果为空,则想要获取到外键引用的记录的名称。如果必要,我可以修改数据库结构,或者我可以更改查询语句。我的选择是什么?

2个回答

23

使用 IFNULLCOALESCE

SELECT T1.ID, IFNULL(T1.name, T2.name) AS name
FROM firsttable T1
LEFT JOIN secondtable T2
ON T1.T2_id = T2.id

0

sql中使用ISNULL

SELECT T1.ID, ISNULL(T1.name, T2.name) AS name
FROM firsttable T1
LEFT JOIN secondtable T2
ON T1.T2_id = T2.id

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接