2015-06-05 93 views
1

如果mysql中表中没有任何值存在,是否可以删除LEFT JOIN的空值插入?我们可以用其他东西替换它吗,比如“'或者”不可用“的文字?我试图COALESCE和IFNULL,还是没有胜利...删除LEFT JOIN空值

我的查询是:如果不存在图像

SELECT r.*,GROUP_CONCAT(ri.image_name SEPARATOR ',') total_images 
FROM recipe as r 
LEFT JOIN recipe_images ri on r.recipe_id=ri.recipe_id 
WHERE r.recipe_id = 107 

这里查询应以逗号分隔值返回,而不是空空。可能吗?

我得到现在在TOTAL_IMAGES的输出是: null, abc. jpg, ghi, jpg

我想删除null

+0

http://stackoverflow.com/questions/9607767/mysql-left-join-values-can-be-null请参阅本 –

+4

'GROUP_CONCAT(合并(ri.image_name,'')separator',')'应该真的这样做 –

+0

你的语法如何,当你使用coalesce时会发生什么? – Taemyr

回答

2

您可以使用COALESCE这样GROUP_CONCAT(COALESCE(ri.image_name, '') SEPARATOR ',')

SELECT r.*, GROUP_CONCAT(COALESCE(ri.image_name,'') SEPARATOR ',') total_images 
FROM recipe as r 
    LEFT JOIN recipe_images ri on r.recipe_id = ri.recipe_id 
WHERE r.recipe_id = 107 
+0

,感谢您的快速响应。但是,您的查询将返回NULL值作为所有列中的结果。我只需要在total_images中有空值。 –

+1

您可以添加您的示例数据和查询的输出到您的问题。 – ughai