Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL选择:将PK与元组匹配,然后从该元组的值中选择与该元组具有相同值的其他元组?_Sql_Select - Fatal编程技术网

SQL选择:将PK与元组匹配,然后从该元组的值中选择与该元组具有相同值的其他元组?

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

我被家庭作业缠住了

如何从该表中检查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    L32D   1998   
这就是我想要选择的:

sID   cID 
-------------
01   L32D 
02   L32D 
03   L32D 
我尝试过不同的组合,但都没有达到我想要的效果。也许我现在太累了

例如,我尝试了以下方法:

SELECT sID 
FROM studentcourse 
WHERE sID = 
( 
SELECT cID 
FROM studentcourse 
WHERE sID = '03'
)

BR,Jay

sID='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 L32D
02 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')