求大神,告诉我SQL中的派生表有什么用,用白话说下,谢谢详细一些!我非常不明白,还有相关子查询,跪

2025-03-28 19:42:10
推荐回答(1个)
回答1:

派生表:比如要查找一个叫张铁牛的人的信息,我们知道他是男性,为了缩小查找范围我把所有的男性都找出来,然后从这些男性中里面再去找张铁牛。这里男性的集合就相当于派生表,转成sql语句是这样select 姓名,住址,身份证 from (select * from 表名 where 性别='男性') t where 姓名='张铁牛'(这里只是为了举例子),这里的t这个数据集就是派生表,它是虚表,在数据库中不存在的,是我们构建的,在这里的目的是为了缩小数据的查找范围。
相关子查询:子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。比如:select * from 外表 where 姓名 in (select 姓名 from 内表 where 外表.姓名=内表.姓名),你看在括号里的sql语句,是与外表关联的。这里顺便说一下非相关子查询,还是以上面为例,如:select * from 外表 where 姓名 in (select 姓名 from 内表 where 外表.姓名='张铁牛'),你看这个语句中括号里的sql语句,它是单独执行的,与外表没有任何关联,它只执行一次,执行完后将结果集传递给外部查询使用。
这里只是表面上描述了一下,内部还有其他区别,lz需要通过联系体会,有问题再追问,望采纳。