数据库中什么时候用嵌套查询

数据库中什么时候用嵌套查询,第1张

嵌套查询, 就是我主查询的 不是一个表, 而是另外一个查询

例如 SQL Server 2008 当中

我需要查询 某个表的 第 11行 到第20行的数据。

也就是翻页处理, 每页10行, 现在要查询第2页。

SELECT

TOP 10

top20

FROM

(

SELECT

TOP 20

FROM

ORDER BY

排序列 ASC

) AS top20

ORDER BY

排序列 DESC

内部的子查询, 是查询 表的, 查询 20行数据。

外部的主查询, 是查询子查询的, 从子查询的20行结果中,查询其中的10行

你的查询当然会有问题:用等于号的话,后面的值必须是一个标量(所谓标量就是只能有一个值,或者没有值)。而你的查询中SNO等于之后的子查询返回的明细是有多个记录,故会出错(如果无符合条件的记录,或者只有一个记录那么也是可以执行的)。

从你的查询来看,似乎只需要DEGREE在70和90之间的SNO记录,那么直接用子查询就好了:

select SNO from score where degree between 70 and 90;

如果想要sutdent的资料,那么内连接子查询:

select s

from student s

inner join (select distinct SNO from score where degree between 70 and 90) t on sSNO = tSNO;

SELECT CCOMPANYNAME,AUSERID,ALOGINNAME,BDEPARTMENTID,APASSWORD

FROM USER A

LEFT JOIN DEPARTMENT B

ON ADEPARTMENTID = BDEPARTMENTID

LEFT JOIN COMPANY C

ON BCOMPANYID = CCOMPANYID

WHERE ALOGINNAME LIKE 'Tony%'

完全可以的,你不想用while循环也完全可以做到。

我给你大致说一下思路:

打开数据库获得记录集,之后按要求定义二维数组

假定数组为:MM_Array(X,Y)

那么,X指定字段,Y指定记录。

用两个For循环嵌套,就可以把Y条记录(每条记录取前X字段)的值存到数组中了。

……PS:为什么While循环不是很好?用好了哪个都一样。

selectfromphome_ecms_memberprowhereuseridin(selectuseridfromphome_ecmswherechecked

--存储过程效率更高些这个写的不好。一般都不in查询因为他的效率特别低。而且不需要全部字段的话,尽量就不用select来查询。慢慢努力哦!

以上就是关于数据库中什么时候用嵌套查询全部的内容,包括:数据库中什么时候用嵌套查询、数据库里的一个嵌套查询问题、三张表的数据库嵌套查询问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10061439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存