Записи, айди которых нет в другой таблице - MySQL

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

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

Есть две таблицы. Допустим users (поля id, name, surname) и user_groups (uid, gid, date_joined). Надо достать всех юзеров, айди которых нет в user_groups.

Решение задачи: «Записи, айди которых нет в другой таблице»

textual
Листинг программы
SELECT 
    u.id
FROM users u
LEFT JOIN user_groups gr
    ON u.id = gr.uid
WHERE gr.uid IS NULL

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

  1. В данном коде происходит выборка записей из таблицы users по полю id.
  2. В качестве условия для выборки используется отсутствие записей в таблице user_groups, связанных с данными из таблицы users по полю id.
  3. Для этого используется оператор LEFT JOIN, который объединяет две таблицы по указанному полю и выбирает все записи из левой таблицы (в данном случае users), для которых нет соответствующих записей в правой таблице (user_groups).
  4. Условие gr.uid IS NULL отбирает только те записи, для которых поле uid в таблице user_groups не имеет значения (то есть отсутствует соответствующая запись в таблице user_groups для данного пользователя).
  5. В результате выполнения запроса получаем список идентификаторов пользователей, которые не входят ни в одну группу.

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

10   голосов , оценка 4.6 из 5
Похожие ответы