我正在尝试从两个表中获取数据。第一个表是子类别,第二个表是子类别图像。只有一个子类别具有图像,其余的没有图像。我进行了以下查询,以便没有图像的查询可以使用默认图像
select s.name,s.id,s.level,CASE WHEN g.photo_url IS NULL THEN 'no-image.png' ELSE g.photo_url END AS photo_url
from sub_category s,gallery g
where g.main_id=s.id and g.type_id='9' and s.category_id='1' and s.level='1'
但它返回了一行(有图像的那一行),其余的子类别甚至都没有显示。我们假设显示7个子类别一个带有图像,其余部分带有默认图像那些在画廊桌上没有图像的人。
答案 0 :(得分:1)
您需要使用left join
也使用显式连接语法。
select s.name,s.id,s.level,
CASE WHEN g.photo_url IS NULL THEN 'no-image.png'
ELSE g.photo_url END
AS photo_url
from sub_category s
left join gallery g
on g.main_id=s.id
on g.type_id='9'
where s.category_id='2'
and s.level='1'