我有两个表(版本和格式)以及一个链接到它们的字段 - bar_code
。我遇到的问题是这个选择语句:
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
可以为null的有效行为,如果是查询,不会尝试查找带有Format.bar_code = null
的格式 - 而只是返回另一个选定的数据。
实际上并不确定这在MySQL中是100%可行的,但可以接受任何建议。
答案 0 :(得分:3)
答案 1 :(得分: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)