2009-12-15 55 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) 
相關問題