关于联表查询的一个问题 假有 A表 和B表数据量都是比较大 A表和B表是有关联的那么是A表联B表查询快点还是独立查A表再独立查B表的效率快点?为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 何为独立查A表,再独立查B表?这和A表联B表查是不一样的操作啊! 楼主怎么纠结在这了就两个表的连接,假设是inner join,谁在前谁在后有关系么???至于left join或者 right join 表连接顺序不同,结果集可能不同的哦! 这个要看具体的SQL语句才好分析的.一般原则上是建议大表放前去关联小表.但非绝对,SQL查询优化器会自动选择最优的执行计划. 就是平时在工作中.大家都说联查会很慢.分了两次查询.我对这效率有点怀疑.假设A表有a1,a2,a3字段B表有b1,b2,b3字段a1和b1是一样的我现在要取a1,a2,a3字段(但这个数据如果在b表中有的,那么这个a3就用b3来代替)这样的情况.A表和B表查询得到结果快点先获取A表.再获取B表.(有条件可以直接查询出B表想要的数据)然后再程序里循环a表的集合.比较如果a.a1在b表中的集合有.就重新付值.其实那比表的关系.比这复杂一点.程序要想比较a1是否要在b1中的存在要很多循环和条件.我这简化了一下.就是这种情况.请问大家了解么? 你的意思是取 a1,a2,b3吗? 如果你能写出sql。你就把不同的sql写出来,让大家来讨论哪个sql效率更高!!如果写不出来就让写sql,然后在分析哪个效率会高点。select a1,a2,b3 from a left join b where a.a1 = b.b1 前面没仔细看这一句,然后再程序里循环a表的集合.比较如果a.a1在b表中的集合有.就重新付值.这样做肯定不行,我们的原意是a表如果where过滤一些记录,b表也where过滤一些记录后,再进行连接(不是程序控制),这样比两个表直接连接查询的效率高一些 怎么把插入语句生成到脚本? 关于数据库查询超时问题! 求一个SQL语句 --------------高手帮个忙!!! DATEPART取时间问题!在线等.......谢谢 怎么用触发器写update跟delete啊???? 怎么得到日期 sql2005中,如何批量地讲某个数据库中所有的smalldatetime类型改为datetime,请高手指点~~~ 数据导成excel 权限设置的问题,难倒很多人。高手请帮忙! 这段SQL如何写????????????????? 更新语句的条件问题. SQL拼接错误
这和A表联B表查是不一样的操作啊!
一般原则上是建议大表放前去关联小表.
但非绝对,SQL查询优化器会自动选择最优的执行计划.
假设
A表有
a1,a2,a3字段
B表有
b1,b2,b3字段
a1和b1是一样的
我现在要取
a1,a2,a3字段(但这个数据如果在b表中有的,那么这个a3就用b3来代替)
这样的情况.A表和B表查询得到结果快点
先获取A表.再获取B表.(有条件可以直接查询出B表想要的数据)
然后再程序里循环a表的集合.比较如果a.a1在b表中的集合有.就重新付值.其实那比表的关系.比这复杂一点.程序要想比较a1是否要在b1中的存在要很多循环和条件.
我这简化了一下.
就是这种情况.请问大家了解么?
select a1,a2,b3 from a left join b where a.a1 = b.b1
这样做肯定不行,我们的原意是a表如果where过滤一些记录,b表也where过滤一些记录后,
再进行连接(不是程序控制),这样比两个表直接连接查询的效率高一些