MySQL объединяется для отображения категорий, подкатегорий и подкатегорий - PullRequest
1 голос
/ 20 июля 2009

У меня есть три таблицы: категории, подкатегории и подкатегории.

Я хочу отобразить список в следующем формате:

dvds
cds
cds > pop
cds > blues
cds > new age
cds > new age > whale noises
books
books > cowboys
books > zombies

Мне удалось отобразить все, кроме названий категорий, когда у них есть дети, например, что я получаю:

dvds
cds > pop
cds > blues
cds > new age > whale noises
books > cowboys
books > zombies

В приведенном выше списке отсутствуют категории компакт-дисков и книг, а также подкатегория компакт-дисков> new age.

Я использую запрос:

SELECT
  c.name AS c_name,
  sc.name AS sc_name,
  ssc.name AS ssc_name
FROM
  categories c
LEFT JOIN
  subcategories sc
  ON c.id = sc.category_id
LEFT JOIN
  subsubcategories ssc
  ON sc.id = ssc.subcategory_id

Любая помощь с этим будет высоко ценится!

1 Ответ

1 голос
/ 20 июля 2009
SELECT  *
FROM    (
        SELECT  DISTINCT
                c.name AS c_name,
                sc.name AS sc_name,
                ssc.name AS ssc_name
        FROM    categories c
        LEFT JOIN
                subcategories sc
        ON      c.id = sc.category_id
        LEFT JOIN
                subsubcategories ssc
        ON      sc.id = ssc.subcategory_id
        GROUP BY
                c.name, sc.name, ssc.name WITH ROLLUP
        HAVING  c_name IS NOT NULL
        ) q
ORDER BY
        c_name, sc_name, ssc_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...