Я пытаюсь найти все users
, которые не имеют orders
.
Пока я пробовал следующее:
select * from `users` where not exists
(select * from `orders` where `users`.`id` = `orders`.`user_id`)
Я также попробовал следующее:
select users.*, count(distinct orders.reference) as orders_count from `users`
left join `orders` on `users`.`id` = `orders`.`user_id`
group by `users`.`id` having orders_count = 0
Тем не менее, оба очень медленные запросы. Есть около 5000 клиентов и более 30 000 заказов. Есть ли более эффективный способ сделать это?