Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zeilen mit Nullwert für group_concat werden nicht zurückgegeben

Die zuvor als richtig markierte Antwort ist leider falsch (wie Benutzer desaivv im Kommentar anmerkte).

Es muss IFNULL lauten , [nicht ISNULL, isnull nimmt nur einen Parameter und gibt einen booleschen Wert zurück] !

IFNULL gibt den zweiten Parameter zurück, wenn null:

SELECT  `a`.`id` , `a`.`name` , `b`.`id` AS  `b_id` , `b`.`name` AS  `b_name` ,   
IFNULL(GROUP_CONCAT(  `c`.`l_id` ), '') AS  `c_ls`
FROM  `a`
INNER JOIN  `b` ON  `a`.`b_id` =  `b`.`id`
LEFT OUTER JOIN  `c` ON  `a`.`id` = `c`.`a_id`
GROUP BY `a`.`id`
ORDER BY  `a`.`created` DESC

Aber das ist überhaupt nicht die Lösung! Was wir brauchen, ist ein "verschachtelter" Join -

Bitte überprüfen Sie diese SQL-Fiddle: http://www.sqlfiddle.com/#!2/54c6f/3 /0