SQL选择:将PK与元组匹配,然后从该元组的值中选择与该元组具有相同值的其他元组?
我被家庭作业缠住了 如何从该表中检查cID,sID='03'的值?然后,检查另一个与sID='03'具有相同cID的sID并将其选中SQL选择:将PK与元组匹配,然后从该元组的值中选择与该元组具有相同值的其他元组?,sql,select,Sql,Select,我被家庭作业缠住了 如何从该表中检查cID,sID='03'的值?然后,检查另一个与sID='03'具有相同cID的sID并将其选中 sID cID year grades -------------------------------- 01 L21D 1997 4 01 L24D 1998 2 01 L32D 1998 3 02 L21D 1998 3 02 L32D 1998 4 03 L3
sID cID year grades
--------------------------------
01 L21D 1997 4
01 L24D 1998 2
01 L32D 1998 3
02 L21D 1998 3
02 L32D 1998 4
03 L32D 1998
这就是我想要选择的:
sID cID
-------------
01 L32D
02 L32D
03 L32D
我尝试过不同的组合,但都没有达到我想要的效果。也许我现在太累了
例如,我尝试了以下方法:
SELECT sID
FROM studentcourse
WHERE sID =
(
SELECT cID
FROM studentcourse
WHERE sID = '03'
)
BR,JaysID='03'正在学习的课程:
Select cID from StudentsInClasses where sID = '03'
有时与sID='03'参加同一课程(包括sID='03')的学生:
这将获取sID为“03”的cID:
select cID from table where sID = '03'
获取具有相同cID的其他sID的一种方法是将上述查询放入子查询中:
select * from table
where cID in (
select cID from table where sID = '03'
)
结果将是:
01 L32D02 L32D
03 L32D使用:
SELECT t.cid,
t.sid
FROM TABLE t
JOIN TABLE x ON x.cid = t.cid
AND x.sid = '03'
它的可读性更高,如:
SELECT t.cid,
t.sid
FROM TABLE t
WHERE t.cid IN (SELECT x.cid
FROM TABLE x
WHERE x.sid = '03')
使用存在:
SELECT t.cid,
t.sid
FROM TABLE t
WHERE EXISTS(SELECT NULL
FROM TABLE x
WHERE x.cid = t.cid
AND x.sid = '03')
大家好,欢迎来到Stack Overflow。请给出一个你想要的结果的例子,并附上评论。你取得了多大的进步?如果你表现出你在自己身上付出了一些努力,人们会更愿意帮助你。杰伊,你应该编辑你的问题来添加那些东西。哦,伙计,现在搞砸了。我该如何在注释中添加代码?Jay,改为在问题中添加代码-注释不是为这类事情准备的。谢谢!至少我已经接近成功了^^谢谢你们。再见:)我喜欢这个论坛。伟大的名字:)@jdnhldn你总是可以表现出一点爱,并点击你最喜欢的答案旁边的复选标记。只要说出爱是什么:)
SELECT t.cid,
t.sid
FROM TABLE t
WHERE t.cid IN (SELECT x.cid
FROM TABLE x
WHERE x.sid = '03')
SELECT t.cid,
t.sid
FROM TABLE t
WHERE EXISTS(SELECT NULL
FROM TABLE x
WHERE x.cid = t.cid
AND x.sid = '03')