抱歉,我想不出更好的标题(或任何有意义的事情)。
我一直在尝试编写一个SQL查询,在那里我可以检索与学生Jaci Walker具有相同等级值的学生的姓名。
表的格式为:
STUDENT(id, Lname, Fname, Level, Sex, DOB, Street, Suburb, City, Postcode, State)
所以我知道Lname (Walker)
和Fname (Jaci)
,我需要找到Jaci Walker等级,然后输出一个具有相同等级的名字列表。
--Find Level of Jaci Walker
SELECT S.Fname, S.Name, S.Level
FROM Student S
WHERE S.Fname="Jaci" AND S.Lname="Walker"
GROUP BY S.Fname, S.Lname, S.Level;
我已经找到了如何检索Jaci Walker
的级别,但不知道如何将其应用于其他查询。
谢谢大家的帮助, 在将其余查询添加到其中时,我只是坚持了一点。
https://www.dropbox.com/s/3ws93pp1vk40awg/img.jpg
SELECT S.Fname, S.LName
FROM Student S, Enrollment E, CourseSection CS, Location L
WHERE S.S_id = E.S_id
AND E.C_SE_ID = CS.C_SE_id
AND L.Loc_id = CS.Loc_ID
AND S.S_Level = (SELECT S.S_Level FROM Student S WHERE S.S_Fname = "Jaci" AND S.S_Lname = "Walker")
AND CS.C_SE_id = (SELECT CS.C_SE_id FROM CourseSection CS WHERE ?)
AND L.Loc_id = (SELECT L.Blodg_code FROM Location L WHERE L.Blodg_code = "BG");
答案 0 :(得分:1)
试试这个:
SELECT S.Fname, S.Name, S.Level
FROM Student S
WHERE S.Level =
(SELECT Level
FROM Student
WHERE Fname="Jaci" AND Lname="Walker"
)
但你必须确保只有一名学生叫Jaci Walker ......
答案 1 :(得分:1)
您可以将查询重新用作子查询,以查找具有相同级别的其他条目。
SELECT Fname, Name
FROM Student
WHERE Level = (
SELECT Level FROM Student S WHERE S.Fname="Jaci" AND S.Lname="Walker")
答案 2 :(得分:1)
您无需对结果进行分组。
试试这个
Select Fname,Lname from Student
where Level=(Select Level
from Student
where Fname='Jaci' AND Lname='Walker' );
答案 3 :(得分:0)
我认为你不需要分组和所有人......
简单地说,
SELECT S.Fname, S.Name, S.Level FROM Student S WHERE S.LEVEL LIKE (SELECT LEVEL FROM STUDENT WHERE Fname="Jaci" AND Lname="Walker");
你在找同样的吗?
答案 4 :(得分:0)
试试这个:
SELECT S.Fname, S.Name, S.Level FROM Student s
WHERE Level =
(SELECT TOP 1 Level FROM Student WHERE Fname = "Jaci" and Lname = "Walker")
如果您不使用TOP 1,如果您的数据中有多个“Jaci Walker”,则此查询将失败。