繁体   English   中英

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

[英]How to get opposite results of a specific sql query?

我有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

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

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

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
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM