mysql—如何获得特定sql查询的相反结果?

6pp0gazn  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(355)

我有3个表格,分为用户,用户课程和课程。
我想创建两个查询:
一个查询返回特定用户订阅的课程
返回特定用户取消订阅课程的另一个查询
我完成了第一个查询,但我可以´无法执行第二个查询。
我试图否定这些条件,多次得到相同的行。

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

这是第一个查询,它给出了一个用户的所有订阅课程,我不知道如何扭转它,所以我得到了该用户的不明嫌犯课程。

camsedfj

camsedfj1#

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

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
)

相关问题