gpt4 book ai didi

java - 选择不属于关系表一部分的表属性

转载 作者:行者123 更新时间:2023-11-29 20:59:29 25 4
gpt4 key购买 nike

因此,我正在寻找一种方法来选择不属于关系表的表的属性。

我有 3 个表:Course、Student 和关系表 StudentCourse。StudentCourse 具有外键 courseid 和 personid,它们是其他表中的主键。

我想知道是否可以通过sqlquery选择不属于类(class)的学生。

编辑:

学生。列:学生 ID varchar 主键姓名 varchar

当然。列:类(class) ID int 自增类(class)名称

学生类(class)courseid int 主键外键Studentid varchar 主键外键

这不是正确的代码,但它应该可以帮助您理解表格的各个部分。

我已经尝试过:

SELECT Student.studentid FROM Student INNER JOIN StudentCourse ON Student.studentid = StudentCourse.studentid WHERE StudentCourse.studentid ='null';

这显然行不通。我还尝试将关系表与学生表进行比较,看看学生 ID 是否不存在于 StudentCourse 表中。

如果我从 StudentCourse 中选择 *,我会得到所有有类(class)的学生。前任:类(class)ID:1 学生ID:199502159292

现在我想从学生表中选择所有没有类(class)的学生

例如:学生号:199909091414 姓名:卡尔 姓:彼得森

有类(class)的学生不应该是可见的。

最佳答案

要选择注册类(class)的所有学生,您可以执行以下操作:

SELECT student_id
FROM StudentCourse
WHERE course_id=*<value>*

我选择了最简单的方法,即通过ID选择。如果您需要按名称或其他类(class)列进行选择,您应该使用:

SELECT sc.student_id
FROM StudentCourse AS sc
INNER JOIN Course AS c ON sc.course_id=c.course_id
WHERE c.course_name=*<value>*

现在,完整的查询:

SELECT *
FROM Student AS s
WHERE s.student_id NOT IN (
SELECT student_id
FROM StudentCourse
WHERE course_id=*<value>*
)

这将选择学生表中未注册类(class)的所有学生。

关于java - 选择不属于关系表一部分的表属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com