Я пытаюсь подсчитать количество записей в таблице. Таблица называется принадлежностью и имеет только 4 столбца (2 из которых являются внешними ключами)Лучше/более эффективный способ написать этот запрос
Я хочу подсчитать количество записей, в которых аффилированный столбец равен 0, а business_id связан с определенной учетной записью.
Я знаю, как сделать этот запрос, используя ключевое слово IN, но мне было интересно, есть ли лучший или более эффективный способ сделать это.
Это версия IN запроса:
SELECT COUNT(1) FROM affiliations
WHERE business_id IN (
SELECT business_id
FROM affiliations
WHERE account_email = '[email protected]'
) AND affiliated = 0
Я понимаю, я мог бы заменить это с EXISTS:
SELECT COUNT(1) FROM affiliations
WHERE EXISTS (
SELECT 1 FROM affiliations
WHERE account_email = '[email protected]'
) AND affiliated = 0
Будет ли заявление с EXISTS работу? И как уже было сказано, есть ли лучший способ сделать это?
Заранее благодарен!
Некоторая дополнительная информация: business_id не является уникальным в этой таблице. В базе данных есть много разных взаимоотношений между учетными записями и предприятиями, и эта таблица содержит связанные с учетной записью и business_ids. Я выбираю account_email и хочу, чтобы все бизнес-объекты, с которыми связана эта учетная запись, а затем подсчитали количество учетных записей, которые также связаны с каждым из этих предприятий. –
Пожалуйста, опубликуйте вывод EXPLAIN ANALYZE этого запроса – hd1
как насчет подсчета business_id для account_email = '[email protected]' и affiliated = 0 – faisal