CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

再问个问题,SQL

楼主kingtiy(卡卡)2006-07-03 16:38:35 在 MS-SQL Server / 应用实例 提问

A表  
  id,name,charge  
  B表  
  id  
   
  select   id,charge   from   A   inner   join   B   on   A.id=B.id  
  这个查询语句有问题吗?  
  如果A,B表中都有很多数据,查询会不会很耗时间?  
  如果是这样,那有什么方法改进吗?  
  问题点数:20、回复次数:7Top

1 楼LouisXIV(夜游神)回复于 2006-07-03 16:42:39 得分 0

这个基本已经是最优方案了,如果速度还是有问题,检测你的硬件环境或者索性用其他数据库吧Top

2 楼fcuandy(了此残生.)回复于 2006-07-03 16:47:07 得分 0

1,这条语句有没有问题:  
  肯定有,至少select   id这里的id不明确,因为从on的条件看出a,b表都有id列。  
  2,关于性能,基本同意楼上Top

3 楼kingtiy(卡卡)回复于 2006-07-03 16:47:54 得分 0

我查询的时候都说查询语句有错,不能执行  
  我实在是找不到错误在哪里  
  我还以为是数据量太大了,不能执行  
   
  那如果用下面这个查询不知道效率是不是会低点  
  select   id,charge   from   A   where(id   in(select   *   from   B))  
  Top

4 楼kingtiy(卡卡)回复于 2006-07-03 16:50:14 得分 0

1,这条语句有没有问题:  
  肯定有,至少select   id这里的id不明确,因为从on的条件看出a,b表都有id列。  
  2,关于性能,基本同意楼上  
   
   
  --------------------  
  这里说明下,B表中的id包含于A表中  
  这样会出问题吗?  
  还是会报语法问题Top

5 楼fcuandy(了此残生.)回复于 2006-07-03 16:50:54 得分 0

至于你语句的错误,我上面已经说了。  
  第二个,   where   id   in(..)   这句,如果你的SELECT的字段列表中只需要表A的字段,那么这种写法不会比连接慢,至少也是差不多。Top

6 楼fcuandy(了此残生.)回复于 2006-07-03 16:52:18 得分 0

你可以  
  select   a.id,charge   from   a   inner   join   b   on   a.id=b.id  
  也可以  
  select   b.id,charge   from   a   inner   join   b   on   a.id=b.id  
  因为你的a.id=b.id是连接条件,所以在选择列表里,取哪个无所谓。Top

7 楼kingtiy(卡卡)回复于 2006-07-03 17:01:15 得分 0

哦,更明白了点  
  我去做下看了,非常谢谢Top

相关问题

关键词

得分解答快速导航

  • 帖主:kingtiy

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo