Как получить второй уровень категорий в MySQL? - PullRequest
0 голосов
/ 14 декабря 2018

Здравствуйте, я хочу получить записи из таблицы категорий для второго уровня.См. Мою таблицу категорий ниже: -

id  name     parent_id
 1   Women     ROOT
 2   Dress       1
 3   Denim       1
 4   Sweaters    1
 5   Long Dress  2
 6   Short Dress 2

Я попробовал следующий код: -

SELECT categories.id,categories.name,categories.parent_id FROM `categories`
join categories c
on c.id = categories.parent_id

Мой ожидаемый результат такой: -

id  name     parent_id
 2   Dress       1
 3   Denim       1
 4   Sweaters    1

IЕсли вы хотите получить записи второго уровня, это означает, что родительским идентификатором является ROOT, а их идентификатор категории связан с parent_id.Спасибо

Ответы [ 3 ]

0 голосов
/ 14 декабря 2018

это будет работать:

select b.id,b.name,b.parent_id from categories a,categories b 
where a.id=b.parent_id and a.parent_id='ROOT';
0 голосов
/ 14 декабря 2018

Мы можем попробовать одноуровневое самостоятельное соединение с условием, что левая сторона - это позиция ROOT:

SELECT c2.id, c2.name, c2.parent_id
FROM categories c1
INNER JOIN categories c2
    ON c2.parent_id = c1.id
WHERE
    c1.parent_id = 'ROOT';

enter image description here

Демо

0 голосов
/ 14 декабря 2018

вы можете использовать в

select * from category where parent_id in (
select id from category where parent_id='ROOT'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...