如何获得特定SQL查询的相反结果?

时间:2019-01-02 22:16:17

标签: mysql select

我有3个表,分为用户,用户课程和课程。

我想创建2个查询:

  1. 一个查询以返回特定用户的已订阅课程
  2. 另一个查询,用于返回特定用户的退订课程

我完成了第一个查询,但是我无法使第二个查询正常工作。

我试图取消条件并多次获得相同的行。

SELECT 
    course.course_id,course_name,course_owner,course_date,course_time
FROM
    course, users, user_courses
WHERE 
    usershortcut = "mmuster" 
    AND user_courses.user_id = users.user_id 
    AND user_courses.course_id = course.course_id

这是第一个查询,它给出了用户的所有已订阅课程,我不知道如何撤消该查询,所以我得到了该用户的取消订阅的课程。

1 个答案:

答案 0 :(得分:0)

如果您提到的查询为您提供了订阅的课程,那么对于第二个课程,您可以使用以下过滤条件:

select *
from course
where course_id not in (
  SELECT course.course_id
  FROM course,users,user_courses
  WHERE usershortcut="mmuster" and user_courses.user_id = users.user_id 
  and user_courses.course_id = course.course_id
)