我正在尝试查找所有没有具有任何users
的{{1}}。
到目前为止,我已经尝试了以下方法:
orders
我也尝试了以下方法:
select * from `users` where not exists
(select * from `orders` where `users`.`id` = `orders`.`user_id`)
但是,两者都是非常慢的查询。大约有5000个客户和30,000多个订单。有更有效的方法吗?
答案 0 :(得分:1)
您需要将子查询限制为仅查看user_id。另外,请确保已为user_id编制索引。
Alter table orders add index(user_id)
Select * from users where id NOT IN(select user_id from
orders)