Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie zwrócono wierszy z wartością null dla group_concat

Odpowiedź wcześniej oznaczona jako prawidłowa jest niestety błędna (jak zauważył użytkownik desaivv w komentarzu).

Musi brzmieć IFNULL , [nie ISNULL, isnull przyjmuje tylko jeden parametr i zwraca wartość logiczną] !

IFNULL zwraca drugi parametr, jeśli 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

Ale to wcale nie jest rozwiązanie! Potrzebujemy "zawiniętego" połączenia -

Więc sprawdź te skrzypce SQL: http://www.sqlfiddle.com/#!2/54c6f/3 /0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. co jest szybsze, count(*) lub count(table_field_name) w mysql?

  2. Jaki jest najlepszy sposób na deprecjację kolumny w schemacie bazy danych?

  3. Ustaw wynik zapytania na zmienną w MySQL

  4. Podzapytanie MySQL — Znajdź tylko pierwszy rekord w LEWYM JOIN

  5. php mysql funkcja z opcjonalnym parametrem