首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询-一个表中的项列表,而不是另一个表中的项列表

SQL查询-一个表中的项列表,而不是另一个表中的项列表
EN

Stack Overflow用户
提问于 2017-10-06 17:46:35
回答 4查看 39关注 0票数 1

我需要一些SQL查询的帮助。我有一个课程表和一个包含用户id和课程id的表,表示用户已经参加的课程(可能没有参加任何课程;该用户id在该表中没有条目)。

我需要一个查询来返回而不是所选课程的列表。

代码语言:javascript
复制
Course Category table
    CategoryID
    Caegory

Courses table
    CourseID
    CategoryID
    CourseName
    ...

UserCourse table
    UserID
    CourseID
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-10-06 18:26:11

这将只列出课程

代码语言:javascript
复制
select *
from Courses C
Left join CourseCategory cc on
cc.CategoryID = c.CategoryID
where CourseID not in (Select CourseID from UserCourse where UserID = 14)
票数 0
EN

Stack Overflow用户

发布于 2017-10-06 18:32:27

您可以使用not exists

代码语言:javascript
复制
Select * 
From Courses c 
Where Not Exists (Select 1 From UserCourse uc Where uc.CourseID = c.CourseID)
票数 1
EN

Stack Overflow用户

发布于 2017-10-06 19:48:31

我需要的是对于给定的用户id和课程类别,该用户没有选择该类别中的哪些课程。

(顺便说一句,这应该是在请求中。)

所以:

  1. courses中选择。
  2. 限制到所需的类别。
  3. 限于不属于用户所选课程范围内的课程。

查询:

代码语言:javascript
复制
select *
from courses
where categoryid = 123
and courseid not in (select courseid from usercourse where userid = 456);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46611287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档