标题:sql查询问题
取消只看楼主
Bilicon
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-1
 问题点数:0 回复次数:4 
sql查询问题
现在我有一个表,
SNO PNO JNO
S1 P1 J1
S1 P2 J3
S2 P2 J1
S3 P3 J1


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

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

搜索更多相关主题的帖子: sql 查询 
2005-11-07 16:32
Bilicon
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-1
得分:0 
下面这段语句好像是答案,两位版主可以帮我解释一下吗?小沙初学数据库,很多看不懂啊。

假设表名 tab1

select jno from
(SELECT pno,JNO from
tab1 t1 where pno in
(select pno from tab1 where sno = 'S1')
)T2 group by jno having count(JNO) = (select count(1) from tab1 where sno = 'S1')
2005-11-09 14:23
Bilicon
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-1
得分:0 

感觉volte版主的语句比小沙上面所写的要好,尽管这样,小沙还是希望大家帮我分析一下,上面那个语句

是什么意思。

2005-11-09 15:51
Bilicon
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-1
得分:0 

其实小沙还是不是很懂volte版主的那段语句的意思,可以说说思路嘛?

2005-11-10 15:17
Bilicon
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-1
得分:0 
以下是引用nic在2005-11-11 15:56:00的发言:

我想请教一下“group by jno having count(JNO) = (select count(1) from tab1 where sno = 'S1')”是不是应该用:
group by jno having count(JNO) >= (select count(1) from tab1 where sno = 'S1')
因为按照楼主所说是“至少包含”的意思。

好像改了之后也不行啊。
2005-11-17 07:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-32962-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.901668 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved