Как включить несовпадающие строки в GROUP_CONCAT
? Здесь Таблица cls_sec
содержит каждый раздел, присвоенный классу.
Класс Один имеет 2 сечение - ' A ' и ' B ',
Класс Два имеет 1 секцию ' A '
Класс Три имеет Нет раздел.
Здесь раздел является ключевым для соединения между таблицами, но как я могу включить класс три , который не имеет раздела в GROUP_CONCAT
результате.
Таблица cls
- списки класса
id | ttl
===========
1 | One
2 | Two
3 | Three
Таблица sec
- списки разделов
id | ttl
===========
1 | A
2 | B
Таблица cls_sec
- списки каждого раздела, отнесенного к классу
id | c_id| s_id
=====================
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
Согласно строкам в cls_sec
, мои ожидания такие же, как и ниже,
1.One-B,1.One-A,2.Two-A,3.Three
если у класса есть раздел, каждый раздел будет отображаться со своим связанным классом, else echo only class (если какой-либо раздел не назначен этому классу):
Итак, что я делаю в MySQL, выбираю, если совпадают строки ИЛИ пустые строки
MySQL CODE
SELECT
GROUP_CONCAT(DISTINCT cls.id,'.',cls.en_ttl, '-', sec.en_ttl
ORDER BY cls.id) AS cls
FROM
cls
LEFT JOIN
cls_sec ON cls_sec.c_id = cls.id
JOIN
sec ON sec.id = cls_sec.s_id OR cls_sec.s_id is NULL
ORDER BY cls.id DESC
Но я получаю
1.One-B,1.One-A,2.Two-A,3.Three-B,3.Three-A