sql >> Databasteknik >  >> RDS >> Mysql

Rader med nullvärde för group_concat returneras inte

Svaret som tidigare markerats som rätt är tyvärr fel (som användaren desaivv noterade i kommentaren).

Det måste stå IFNULL , [inte ISNULL, isnull tar bara en parameter och returnerar en boolean] !

IFNULL returnerar den andra parametern om 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

Men det här är inte alls lösningen! Vad vi behöver är en "invecklad" anslutning -

Så kontrollera denna SQL-fiol: http://www.sqlfiddle.com/#!2/54c6f/3 /0



  1. hur hämtar man data från tre eller fler tabeller?

  2. PHP PDO-undantag + varning på MySQL har försvunnit?

  3. MySQL-handledning – Hantera MySQL-serverloggar:Rotera, komprimera, behålla och ta bort

  4. Hur kan jag ta reda på standardteckenuppsättningen/sorteringen i min MySQL