如何连接表以正确返回所有行,另外还有一个空行?

时间:2012-10-22 19:17:05

标签: mysql join null

我有两个表,一个包含部件列表,另一个包含属性列表。我想要实现的是列出所有具有属性的部分,以及基本行本身就是la:

Part   Attribute
----------------
Cake   Batman
Cake   Princess
Cake   Spiderman
Cake   NULL

QUERY
----------------
SELECT p.Name, pa.Name
FROM PartsTbl p
LEFT JOIN PartAttrib pa ON p.Name= pa.BaseName
WHERE p.Name = 'Cake'

目前,这仅返回除最后一行之外的所有内容。如何将最后一行作为同一查询的一部分生成,而不是通过运行第二个查询?

更新---------------

Table Structure
PartsTbl - Name
PartAttrib - BaseName (To PartsTbl.Name), Name

1 个答案:

答案 0 :(得分:1)

一个简单的联盟是你的朋友:o)

SELECT p.Name, pa.Name
FROM PartsTbl p
LEFT JOIN PartAttrib pa ON p.Name= pa.BaseName
WHERE p.Name = 'Cake'
UNION
SELECT Name, NULL
FROM PartsTbl
WHERE Name = 'Cake'