Запрос с подзапросом - MySQL (219698)

Узнай цену своей работы

Формулировка задачи:

В старой теме что то никто не подсказал Запрос из трех таблиц Возможно слишком размыто описал. Сформулирую более конкретно. Есть таблица с группами: | id | parent_id | name | Если группа является родительской то parent_id=0 Если группа является подгруппой то parent_id=id.родительской группы. Есть родительские группы у которых нет подгрупп. Необходимо получить список групп у которых нет подгрупп. Проверить одну группу понятно а вот получить список...? Виделось что то типа:
Листинг программы
  1. SELECT groups.id FROM groups WHERE groups.parent_id = 0 AND NOT (SELECT groups2.id gid FROM groups groups2 WHERE groups2.parent_id=groups.id)
Но так не правильно. Подскажите как правильно.

Решение задачи: «Запрос с подзапросом»

textual
Листинг программы
  1. CREATE TABLE groups (
  2. id int,
  3. name varchar(100),
  4. parent_id int
  5. );
  6.  
  7. INSERT INTO groups VALUES
  8. (333, "Yasmina", 0),
  9. (198, "John", 333),
  10. (29, "Pedro", 198),
  11. (4610, "Sarah", 29),
  12. (72, "Pierre", 29),
  13. (692, "Tarek", 333);
  14.  
  15. SELECT id FROM groups WHERE id NOT IN (SELECT parent_id FROM groups);
  16. +------+
  17. | id   |
  18. +------+
  19. | 4610 |
  20. |   72 |
  21. |  692 |
  22. +------+

Объяснение кода листинга программы

  1. Создаётся таблица groups с тремя столбцами: id, name и parent_id.
  2. В таблицу groups добавляются некоторые данные с помощью оператора INSERT INTO.
  3. Составляется SQL-запрос с подзапросом, который выбирает все строки из таблицы groups, где значение столбца id не входит в список значений столбца parent_id из всех строк этой же таблицы.
  4. Результатом работы запроса будет список значений столбца id из тех строк таблицы groups, которые удовлетворяют условию.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.417 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут