mysql - 如何连接一个表以正确返回所有行以及一个空行?

标签 mysql join null

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

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

最佳答案

一个简单的 Union 是你的 friend :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'

关于mysql - 如何连接一个表以正确返回所有行以及一个空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018220/

相关文章:

MYSQL 查询返回不在集合中的行

mysql - 存储长文本 - mysql wampserver

c++ - SQL根据一个表中的行而不是另一个表中的行更新和连接三个表

null - 空 IntegerProperty 的 GQL 测试

java - 这个数组列表可以等于 null 吗?

mysql - 在 bash 中捕获 Mysql 错误

java - 导出所有 netbeans 项目和数据库

MySQL 加入日期列有 1 个月的滞后和性能问题

mysql - select_full_join数量不断增加

mysql - SQL 中的 NULL 在以下场景中如何工作?