Поиск отсутствующих данных

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
unknownby
Сообщения: 747
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Поиск отсутствующих данных

Сообщение unknownby »

Есть запрос на поиск и подсчет значений, нужно сформировать codes_notfind

Код: Выделить всё

SELECT r.*,
GROUP_CONCAT(DISTINCT code_name SEPARATOR ", ") AS codes_find,
.......... AS codes_notfind
FROM `user` r
LEFT JOIN `user_scope_code` c ON r.id = c.id
LEFT JOIN `scope_code` b ON c.obl_id = b.obl_id 
WHERE c.obl_id IN ('303', '304', '305', '315')
GROUP BY r.id
Что у нас есть:
1. таблица `user` - записи пользователей
2. таблица `user_scope_code` - коды пользователей
3. таблица `scope_code` - справочник кодов

Запрос сейчас возвращает актуальные коды, которые найдены у пользователя, нужно вернуть дополнительно коды, которые не найдены.
Например, есть пользователи с id = 1 и id = 2
У пользователя c id = 1 в сводной таблице `user_scope_code` есть коды obl_id ('303', '304')
У пользователя с id = 2 в сводной таблице `user_scope_code` есть коды obl_id ('303')
По итогу запрос возвращает
codes_find "01.01, 01.02" | "01.01"

Нужно чтобы в codes_notfind был возврат кодов, которые не найдены
codes_notfind "01.03, 01.04" | "01.02, 01.03, 01.04"

Нужны идеи :)
По итогу запрос будет сделан на Yii2
Ответить