在我的数据库中,我有一个“用户”,一个“任务”和一个“任务”表。 用户可以解决任务。解决一个任务会在我的“任务”表中保存“user_id”和“quest_id”。
现在,我想选择所有任务,用户没有解决(意味着此用户没有条目和“questings”表中的任务)!
假设用户拥有id 14.如何编写此查询?
解决此查询后,我也希望过滤结果。 任务和用户也有一个城市。 如何编写一个返回所有任务的查询,用户尚未解决,在用户城市(用户城市==任务城市)?
答案 0 :(得分:2)
select * from quests q, users u
where u.id = 14 AND q.city=u.city AND
q.id not in ( select DISTINCT(quest_id) from questing );
答案 1 :(得分:2)
SELECT *
FROM Quests
WHERE Quest_ID NOT IN (
SELECT DISTINCT(Quest_ID)
FROM Questing
WHERE User_ID = 14)