关于INNER JOIN关联的问题 本帖最后由 z3453876 于 2014-05-06 01:09:47 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果没有任何条件的话,加不加外键没区别,就是同一个表扫三遍然后JOIN。如果有A.ID=XXX的话,因为ID是主键,所以A上走索引查找,然后两个索引查找找到B和C,也没外键什么事。外键最大的用处是级联更新删除之类的,查找效率在你这个案例上真看不出有什么用。 你这三个ID都是同一张表,建议你使用 两个 left join ,自己创建自己这个说法不大通。 还有一种方式,是可以在你的表中可以适当的增加一些冗余。ID、Name、CreateBy、CreateByName,UpdateBy,UpdateByName。如果你上面的查询经常使用的话,效率还是会有影响,但是适当的增加冗余的话,就能节省这方面的开销,就是平常维护的时候稍微麻烦写。这个需要有一个取舍 这个没什么不对的啊 也没感觉出有什么要优化的 改成left join更好点 用c#执行sql语句的日期相加返回的问题 求教条捆饶很久的SQL语句 找出不同的记录 一个函数 数据库使用时间长了,怎样清理释放空间 SOS求解啊!这个SQL语句到底要怎么实现啊实在没办法了。在线等高手!!! 帮忙写个多表查询的语句 如何重装mssql2000? 急!急! 急救!!存储过程:入参 数组如何分离并循环插入表中? 简单:两个查询的结果为什么不一样? SqlServer2008默认用户的架构名是什么,如何访问 数据库镜像主备机切换问题
如果有A.ID=XXX的话,因为ID是主键,所以A上走索引查找,然后两个索引查找找到B和C,也没外键什么事。外键最大的用处是级联更新删除之类的,查找效率在你这个案例上真看不出有什么用。
ID、Name、CreateBy、CreateByName,UpdateBy,UpdateByName。
如果你上面的查询经常使用的话,效率还是会有影响,但是适当的增加冗余的话,就能节省这方面的开销,就是平常维护的时候稍微麻烦写。这个需要有一个取舍