2009-12-15 60 views
0

我有两个表(发行版和格式)和一个链接到它们的字段 - bar_code。我遇到的问题是与此select语句:MySQL:在可能为NULL的字段上加入一个表

SELECT 
    Release.name, 
    Release.default_upc, 
    Artist.name, 
    Artist.url_name, 
    Format.* 
FROM 
    releases AS Release, 
    artists AS Artist, 
    formats AS Format 
WHERE 
    Release.id IN(20015, 2414) AND 
    Artist.id = Release.artist_id AND 
    Format.bar_code = Release.default_upc 

的问题是,当Release.default_upc = null,没有记录将被退回。但是,default_upc可以为空,如果它是查询而不是尝试查找带有Format.bar_code = null的格式 - 而不是返回其他选定的数据。

不确定这是100%可能在MySQL中,但任何意见。

回答

1

使用外连接...这里有一个快速射击。检查其他链接的解释。

select Release.name, 
     Release.default_upc, 
     Artist.name, 
     Artist.url_name, 
     Format.* 
from releases as Release 
inner join artists as Artist 
    on Artist.id = Release.artist_id 
outer join formats as Format 
    on Format.bar_code = Release.default_upc 
where 
    Release.id in (20015, 2414) 
相关问题