MYSQL查询帮助,我认为这应该很简单......但我无法得到它

时间:2011-05-31 19:14:36

标签: mysql join

所以我在一个查询中加入两个表,让我们在下面使用它作为例子:

SELECT property.address, property.city, property.state, property.zip, unit.name    
FROM   property, unit
WHERE  unit.propertyID = property.id

此表可以返回单位表中具有匹配单位的所有属性的列表。

我的问题是,如果我有没有单位的属性,我仍然希望这些属性出现,用“N / A”或“NULL”代替单位名称......

截至目前,它完全排除了那些没有至少1个匹配单元的属性。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

将查询更新为正常工作的最简单方法:

SELECT property.address, property.city, property.state, property.zip, unit.name    
FROM   property
left join unit on property.id = unit.propertyID

使用别名编写它的更好方法:

select p.address, p.city, p.state, p.zip, u.name
from property p
left join unit u on p.id = u.propertyID

在没有单位时填充值:

select p.address, p.city, p.state, p.zip, IFNULL(u.name,'N/A') as unitName
from property p
left join unit u on p.id = u.propertyID

答案 1 :(得分:0)

使用LEFT OUTER JOIN:

SELECT p.address, p.city, p.state, p.zip, u.name    
FROM property p LEFT OUTER JOIN unit u ON p.id = u.propertyID