回 帖 发 新 帖 刷新版面

主题:sql查询问题

sql查询问题
现在我有一个表,
SNO PNO JNO
S1 P1 J1
S1 P2 J3
S2 P2 J1
S3 P3 J1


我想查询至少包含所有S1的PNO也就是(包含P1,P2)
的JNO在这里应该是J1吧。

这个用SQL语句应该怎么写呢?

回复列表 (共15个回复)

沙发

有点困难!

板凳

select distinct jno from 表 a
where not exists
(select * from 表 b where b.sno='s1' and
not exists
(select * from 表 c where  c.jno=a.jno and c.pno=b.pno ))

3 楼

请问为什么不能写成:
select  distinct pno from 表 where sno='s1'

我想请问到底至少是什么意思啊?

4 楼

楼上的,他不是查询pno,他是查询jno。

5 楼

select distinct jno from 表 a
where not exists
(select * from 表 b where b.sno='s1' and
not exists
(select * from 表 c where  c.jno=a.jno and c.pno=b.pno ))  
有点晕!

6 楼

distinct
什么意思啊?

7 楼

distinct:当查询结果里包含许多重复的行,如果想去掉表中重复的行,必须用distinct
形如:select  distinct sno
from  sc;

8 楼

呵呵,朋友,我也来顶!~ 
 虽然我才刚学不久的,你那种题目还不怎么懂!~
  所以这次就先不回答案给你,我是个新手! 还希望各位高手多多指教啊!
    在下感激不尽!~呵呵!以后我也会有好多问题,不懂的我也放这来!
  高手门一定要多指教啊![em12][em12][em12]

9 楼

恩,写的不错,我前不久也碰到了一道类似的题目!

10 楼

关系代数就用除法写。SQL有点麻烦

我来回复

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