假设我有一个查询需要查找购买了 A 书但没有购买 B 书的用户。
典型的 SQL 查询可以是:
select u.user_name
from User u
join Purchase p on u.id=p.user_id
join Book b on p.purchase_item=b.id
where b.name='book_A'
and user_name not in
(
select u.user_name
from User u
join Purchase p on u.id=p.user_id
join Book b on p.purchase_item=b.id
where b.name='book_B'
)
这不在查询中看起来效率不高,我可以做这个查询的任何增强吗?