检测关联表中的空行并打印出虚拟数据

时间:2014-03-06 08:41:00

标签: mysql sql

我有2个表与一对多的关系。表A有列

- id
- Name

表B与表A相关。表B属于表A.表B具有列

- id
- TableA_id_ForeignKey
- TimeChange
- Status

我想写一个MySQL查询,当表B没有表A的相关行条目时,虚拟数据将打印在表A中该特定行的输出中。结果将类似于;

TableA_Name 0000-00-00  00

我们可以告诉表A中的哪一行没有关联的行和一些虚拟数据。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

select
b.*,
coalesce(a.name, '0000-00-00 00') as dummy
from
b
left join a on b.a_fk = a.id

使用此left join,您可以获得b中的所有行,无论a中是否有匹配的行。如果没有匹配的行,则返回null。然后coalesce()函数返回其第一个参数,而不是null

更新:理解错误的问题......

select
a.*,
'hello' as dummy /*with the where clause you just get rows where there's no match anyway*//
from
b
right join a on b.a_fk = a.id
where b.id is null