需要帮助构建SQL Query(简单JOIN)

时间:2010-06-08 09:41:15

标签: sql mysql

在我的数据库中,我有一个“用户”,一个“任务”和一个“任务”表。 用户可以解决任务。解决一个任务会在我的“任务”表中保存“user_id”和“quest_id”。

现在,我想选择所有任务,用户没有解决(意味着此用户没有条目和“questings”表中的任务)!

假设用户拥有id 14.如何编写此查询?

解决此查询后,我也希望过滤结果。 任务和用户也有一个城市。 如何编写一个返回所有任务的查询,用户尚未解决,在用户城市(用户城市==任务城市)?

2 个答案:

答案 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)