【问题标题】:How can I join a table to return all rows right and in addition a null row?如何加入表以正确返回所有行以及空行?
【发布时间】:2012-10-22 19:17:05
【问题描述】:

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

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

【问题讨论】:

  • 请发布PartsTbl 的示例。我们假设您上面的内容是PartAttrib,但它没有您在SQL 中使用的BaseName 列。

标签: mysql join null


【解决方案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'

【讨论】:

    猜你喜欢
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多