66问答网
所有问题
数据库中子查询和表连接查询该怎么取舍?
什么时候适合用子查询什么时候适合用表连接查询?那个效率更高些?谢谢
举报该问题
推荐答案 2013-07-28
子查询最终是针对某张表的数据信息进行筛选,也就是说不管你嵌套了几层子查询,最后还是在基表中筛选数据;而表连接的话,又分了很多种,比如笛卡尔积,这个就是两个表的所有结果乘积,另外还有自然连接那些,通过表连接查询的结果可以是多张表的合集……也就是说最终展现的时候,多表连接可以是多个表的数据结果,而子查询却只是一个基表里面的某些筛选数据。至于效率,书上基本都只是说在嵌套子查询中,特别是多重嵌套时,系统花销较大,但是实际嵌套子查询与连表查询谁效率高,这个就没有谁能说的清楚了。因为具体的查询效率可以从很多方面进行优化的,比如建表时创建相关索引,根据表结构创建相关表分区,对常使用查询但不常修改数据的表进行簇集等等,这些都可以在查询效率上进行提高。所以对于你提出的想知道两种方式谁优谁劣,我也不好评价,只能提供一些提高查询效率的方法。希望这补充的内容可以给你帮助。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/sxDn2vDi9.html
其他回答
第1个回答 2017-07-14
子查询都可以用表连接替换,表连接效率更高一点,公司里面代码规定使用多表连接代替子查询,你可以什么时候都用多表连接实现,至于效率分析你需要找DBA了,不过DBA也不会对你说这些事情,
第2个回答 2013-07-28
子查询最终是针对某张表的数据信息进行筛选,也就是说不管你嵌套了几层子查询,最后还是在基表中筛选数据;而表连接的话,又分了很多种,比如笛卡尔积,这个就是两个表的所有结果乘积,另外还有自然连接那些,通过表连接查询的结果可以是多张表的合集……也就是说最终展现的时候,多表连接可以是多个表的数据结果,而子查询却只是一个基表里面的某些筛选数据。
本回答被网友采纳
相似回答
那个mysql
子查询和连接查询
一般常用哪个 谁效率高些
答:
1. 对于 IN、=ANY
子查询
,优化器有如下策略选择:semijoin Materialization exists 2. 对于 NOT IN、<>ALL 子查询,优化器有如下策略选择:Materialization exists 3. 对于 derived 派生表,优化器有如下策略选择:derived_merge,将派生表合并到外部查询中(5.7 引入 );将派生表物化为内部临时表,...
关于
数据库
原理 SQL查询——
连接查询
相关
答:
二. 内
连接查询
内连接(INNER JOIN)使用比较运算符进行表间某(些)列
数据
的比较操作,并列出这些
表中与
连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。1、等值连接:所谓等值连接,是指表之间通过“等于”关系连接起来,产生一个临时表,然后对该临...
数据库
(比如MYSQL) ,表连结
查询与子查询
哪个效率高些? 为什么
答:
合并联接 哈希联接 如果一个联接输入很小(比如不到 10 行),而另一个联接输入很大而且已在其联接列上创建索引,则索引嵌套循环是最快的联接操作,因为它们需要最少的 I/O 和最少的比较。有关嵌套循环的更多信息,请参见了解嵌套循环联接。如果两个联接输入并不小但已在二者联接列上排序(例如,如...
SQL server
数据库中
的多
表连接查询和子查询
的区别?
答:
连接查询
是 通过主外键 让多个
表数据
对应 成一个表数据,而
子查询
是查到的数据 利用这个数据再查别的 如查张三的年级ID 再用这个年级ID去查对应的年级名
数据库
,单
表查询
,多表查询,
子查询
答:
语法:select *from 表1,表2 他会把多个表每行与另外个表统统匹配上,其中会有一些脏
数据
,我们可以用里面值的关系进行
连接
其本质就是笛卡尔积
查询
区别是把,变成 join 且不能用where,要先用on根据里面值的关系拼接好了再用 where 左表中记录的无论是否有匹配关系都全部显示,右表中仅显示匹配成功...
sql
子查询和连接查询
的区别是什么呢?
答:
子查询
的输出可以包括一个单独的值(单行子查询)、几行值(多行子查询)、或者多列数据(多列子查询)。5、
连接查询
是关系
数据库中
最主要的查询,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个
表查询
。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
大家正在搜
数据库子查询有几种查询
数据库主表和子表
数据库父表和子表
数据库子表查询的方法
怎么连接数据库
数据库连接失败怎么办
数据库怎么创建子窗体
数据库相关子查询
mysql数据库子查询
相关问题
SQL server数据库中的多表连接查询和子查询的区别?
数据库(比如MYSQL) ,表连结查询与子查询哪个效率高些?...
MySQL与Oracle的子查询和多表查询区别 求大神求好心...
数据库中当用比较运算符查询时,子查询的结果能不能是多值?
SQL查询语句中,什么叫子查询?
数据库,相关子查询是怎样实现的啊?
数据库多表查询中查询多个属性值且其中还有一个子查询,怎样使用...