Это моя структура таблицы в моей базе данных:ВЫБРАТЬ дочерние категории и родительские категории, без детской категории
Теперь я хотел бы выделить следующие категории:
- дочерних категории (Категории, где parent_category_id NOT NULL)
- Категории, у которых нет дочерних категорий (parent_category_id - NULL, и никакая другая категория не имеет parent_category_id, равную этой категории горы)
Я попробовал этот запрос:
SELECT *
FROM category
WHERE parent_category_id IS NOT NULL
OR (id NOT IN (SELECT id FROM category WHERE parent_category_id IS NOT NULL) AND parent_category_id IS NULL)
В моей базе данных у меня есть следующие записи:
Но когда я выполнить запрос, он возвращает все записей. И я не хочу запись Категория B Head. Потому что это родительская категория с дочерними категориями.
Я хочу, чтобы следующие записи обратно:
- Категория A
- Категория B - Детский
Как я могу это сделать?
круто, избегает 'не в', на всякий случай. [Опасности ..] (http://stackoverflow.com/a/32175659) – Drew