oracle求助

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:38:20
一个表里有学号和选课编号两个字段,如何求同时选了a课程和b课程的学号?谢谢~
一条记录里学号只有一个,选课编号也只有一个,所以不可能满足:选课编号='a课程'and 选课编号='b课程'
,貌似要用到自连接吧,谁知道教教我啊

/*
是用自连接,看最后SELECT 的结果,满足你的要求.
*/
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
Connected as test

SQL>
SQL> CREATE TABLE TY(
2 S_ID VARCHAR2(10),--学号
3 C_NO VARCHAR2(10) --课程
4 );

Table created
SQL> INSERT INTO TY VALUES('111','A');

1 row inserted
SQL> INSERT INTO TY VALUES('111','B');

1 row inserted
SQL> INSERT INTO TY VALUES('111','C');

1 row inserted
SQL> INSERT INTO TY VALUES('112','A');

1 row inserted
SQL> INSERT INTO TY VALUES('112','B');

1 row inserted
SQL> INSERT INTO TY VALUES('113','A');

1 row inserted
SQL> COMMIT;

Commit complete
SQL> SELECT DISTINCT T1.S_ID 学号 FROM TY T1,TY T2
2 WHERE T1.S_ID=T2.S_ID
3 AND T1.C_NO='A'