2015-06-05 5 views
1

Есть ли способ, который может удалить добавление нулевого значения LEFT JOIN, если в таблице в mysql нет значения? Можем ли мы заменить его на другие вещи, такие как «или» недоступные »тексты? Я попытался COALESCE и IFNULL, до сих пор, не победа ...Удалить значение LEFT JOIN null

мой запрос:

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 

здесь запрос должен возвращать пустой вместо NULL в значений, разделенных запятой, если не существует никаких изображений. Является ли это возможным?

Выход я получаю сейчас в 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, где есть null. –

+1

вы можете добавить свои данные образца и результаты запроса к вашему вопросу. – ughai

Смежные вопросы