标题:子查询返回的值多于一个(突然间就解决了~)
只看楼主
HankStar
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2006-10-4
 问题点数:0 回复次数:1 
子查询返回的值多于一个(突然间就解决了~)
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。


SELECT top 6 [B_a_BookName] FROM [BookMessage_b] where B_a_BookName=(select DISTINCT B_a_BookName from BookMessage_a where B_a_Basic=(select C_id from Category where C_Category_b='计算机') ) ORDER BY [B_b_Before] DESC

换成中文一下

SELECT top 6 [B_a_BookName] FROM 表1 where B_a_BookName=(select DISTINCT B_a_BookName from 表二 where B_a_Basic=(select C_id from 表三 where C_Category_b='计算机') ) ORDER BY [B_b_Before] DESC

大概的意思:
(select C_id from 表三 where C_Category_b='计算机') 这个是放类别的表,凡是有计算机这个类别的都满足 ,也就是不止一个id

(select DISTINCT B_a_BookName from 表二 where B_a_Basic= 这个是说当书籍表中有属于计算机的书籍的时候输出

SELECT top 6 [B_a_BookName] FROM 表1 where B_a_BookName=() 这个就是输出有计算机的表的ORDER BY [B_b_Before]......

语句应该没问题~但是,子查询为什么不能多于一个?


PS:原来IN 是关键~

[此贴子已经被作者于2006-12-28 13:03:39编辑过]

搜索更多相关主题的帖子: BookName select 查询 Basic 
2006-12-28 10:04
HankStar
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2006-10-4
得分:0 
看来只有大改特改了~~

2006-12-28 12:14



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




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

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