【发布时间】:2018-04-22 15:06:47
【问题描述】:
我有 2 个表格,其中一个列出人员及其与财产的关系,还有一个包含财产列表(名字、姓氏等)的表格。
人员表中的每个人可能不具有属性表中列出的所有属性。我想要的是每个人都为每个属性返回一行,无论他们是否有链接。
例如
Properties Person
prop_id|prop_name person_id|prop_id|prop_value
----------------- -----------------------------------
1 |firstname 10 | 1 | john
2 |lastname 11 | 1 | sean
11 | 2 | connery
我想要的结果是这样的
10 | firstname | john
10 | lastname | null
11 | firstname | sean
11 | lastname | connery
请注意,john/10 有一个姓氏行,但为空。
我认为这个查询会给我结果,但它没有给我想要的 john 空行。
select person_id, prop_value, prop_name
from person
left outer join properties on person.prop_id = properties.prop_id
union
select person_id, prop_value, prop_name
from person
right outer join properties on person.prop_id = properties.prop_id
此查询省略了 10 lastname 空行。这个查询可以吗?这是 MySQL/MariaDB。
【问题讨论】:
标签: mysql union full-outer-join