gpt4 book ai didi

sql - 选择在同一列中具有两个不同值的行

转载 作者:行者123 更新时间:2023-12-03 15:53:55 24 4
gpt4 key购买 nike

我想选择所有通过的学生semester 1 4 ,我的查询只显示学生的一行,我期待两行。

SELECT Student.mat_stud, fname, lname, dbirth, materials_notes, semester
FROM Student, Notes
WHERE Notes.mat_stud = Student.mat_stud
AND fails_status = 1
AND Notes.mat_div = 1
AND semester IN(1 , 4)
AND Notes.level = 1
AND school_year = 2015
Group By Notes.mat_stud
Having count(fname) = 2
Order By Notes.mat_stud

我的数据库表如下所示:
Student
-------------------------
mat_stud fname lname
-------------------------
142-3698 fname name
142-3699 fname name
142-3701 fname name
142-3700 fname name



Notes
---------------------------------------------------------------
mat_stud materials_notes semester level school_year
---------------------------------------------------------------
142-3698 1 1 2015
142-3699 1 1 2015
142-3701 1 1 2015
142-3698 4 1 2015
142-3700 1 1 2015
142-3700 4 1 2015

预期结果:
mat_stud    fname   lname   materials_notes     semester
142-3698 fname name 1
142-3698 fname name 4
142-3700 fname name 1
142-3700 fname name 4

最佳答案

我通过加入所有通过第 1 学期和第 4 学期的学生的结果来提出这个解决方案:

SELECT Notes.mat_stud FROM Notes 
WHERE semester IN (1, 4) Group By mat_stud Having COUNT(*) = 2

与所有学生。
SELECT t1.mat_stud, fname, lname, materials_notes FROM Student as t1, Notes 
INNER JOIN ( SELECT Notes.mat_stud FROM Notes
WHERE semester IN (1, 4) Group By mat_stud Having COUNT(*) = 2) as t2
ON t2.mat_stud = t1.mat_stud
WHERE fails_status = 1
AND Notes.mat_div = 1
AND Notes.level = 1
AND school_year = 2015
AND t1.mat_stud = Notes.mat_stud
Order By Notes.mat_stud

关于sql - 选择在同一列中具有两个不同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595648/

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