回 帖 发 新 帖 刷新版面

主题:sql太难了,请大家帮帮我!

select distinct jno from spj表 as spj_1
where not exists
(
    select * from spj表 as spj_2 where sno='s1'and   not exists
    (
       [u]select * from spj表 as spj_3
       where spj_3.pno=spj_2.pno and spj_3.jno=spj_1.jno[/u]
    )
)
下划线的那句就不知道是什么意思了,请高手给小弟讲讲,谢谢!
[em10][em10][em10][em10][em10][em8][em8][em8][em8][em8]

回复列表 (共5个回复)

沙发

呵呵。那个as后面的是别名啊。然后下面的是查询条件来的。呵呵。你多看看书吗。看多两次就会的了。

板凳

spj_1,spj_2,spj_3都是spj表的别名,为的是比较spj表的内容,实际上你可以理解为  ......spj表.pno=spj表.pno and spj表.jno=spj表.jno;但是SQL语言没有同一个表的同一个行比较的功能,所以前面用 as 给表加上别名,就可以比较了。

3 楼

not exists
什么意思来的。怎么没有列名在前面也可以用的啊

4 楼

大概的意思是,
检索出s1这个同学所学的所有课程吧!
也不太确定!
不过八九不离十了!
双重否定来表肯定!

5 楼

其实也可以说是这三个表之间建立联接,因为都是相同的字段,我是这样认为的哈.

我来回复

您尚未登录,请登录后再回复。点此登录或注册