UID,user,organizer是相同的数据
现在我想以这样的方式从t1检索数据,即t1.uid=t2.user
和t2.user!=t3.organizer
。因此,我们可以说,如果t2中存在数据,则从t1中提取数据,但如果t2中的数据存在于t3中,则我们必须跳过。
我有几个查询没有得到正确的答案。
select distinct uid, name
from user,review
where (user.uid=review.user) join event
on review.user<>event.organizer;
select distinct uid,name
from user,review,event
where user.uid<>event.organizer and user.uid=review.user;
您可以使用EXISTS
检查review
和NOT EXISTS
中是否有每个用户的匹配行,以确保event
中没有匹配行:
SELECT u.uid, u.name
FROM user u
WHERE EXISTS (SELECT 1 FROM review r WHERE r.user = u.uid)
AND NOT EXISTS (SELECT 1 FROM event e WHERE e.organizer = u.uid);