Всем доброго времени суток. Попалась интересная задачка. Есть таблица Role с колонками ClientID и RoleName. Как можно найти в ней записи ClientID для которых остутствует RoleName ='User'. Знаю что общее число DISTINCT ClientID 897, а WHERE RoleName = 'User' 888.
SELECT ClientID
FROM Role
WHERE NOT RoleName = 'User'
Проблема была, что клиенты не были уникальными Написал такую кверю и нашел все ClientID
SELECT DISTINCT ClientID FROM Role
WHERE ClientID NOT IN (SELECT ClientID FROM Role
WHERE RoleName = 'User' AND clientID IS NOT NULL);
distinct во вложенном запросе сократит затраты памяти базы и времени выполнения.
когда тестировал 100 лет назад , оптимальный вариант был
SELECT DISTINCT ClientID from tab t1
LEFT JOIN tab t2 ON t2.ClientID=t1.ClientID AND t2.RoleName='user'
WHERE t2.id IS NULL
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возник вопрос, возможно, глупый, но все жеЕсть приложение на php и бд с субд Postgresql с расширением postgis