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

如何找出2个表中不相同的记录

楼主InTheRainbow()2005-06-04 10:45:50 在 MS-SQL Server / 基础类 提问

现在有2个表,要检查2个表中的记录中,6个字段是不是完全能对应上.这样的语句应该如何写.我这样写有什么问题嘛?  
   
   
   
  select   Distinct   A.*   from   A,   B   where   A.药品编号<>B.药品编号   and   A.通用名<>B.通用名   and   A.剂型<>B.剂型   and   A.规格<>B.规格   and   A.包装数量<>B.包装数量   and   AA.生产企业<>B.生产企业  
  问题点数:50、回复次数:10Top

1 楼wooernet(林)回复于 2005-06-04 10:58:23 得分 0

比如  
  tab1:  
  a     b  
  1     2  
  2     3  
   
  tab2:  
  c     d  
  1     3  
  2     3  
  ---------------  
  语句:  
  select   tab1.*   from   tab1,tab2   where   tab1.a=tab2.c   and   tab1.b=tab2.d  
  结果  
  a     b  
  2     3  
  ------------  
  明白了?现在是2个字段,6个字段类似。Top

2 楼xluzhong(Ralph)回复于 2005-06-04 11:00:39 得分 0

把   and   改为   orTop

3 楼xluzhong(Ralph)回复于 2005-06-04 11:02:40 得分 10

select   distinct   a.*  
  from   a    
  inner   join   b    
  on   A.药品编号<>B.药品编号    
  or   A.通用名<>B.通用名    
  or   A.剂型<>B.剂型    
  or   A.规格<>B.规格    
  or   A.包装数量<>B.包装数量    
  or   A.生产企业<>B.生产企业  
  Top

4 楼chichunhua(無愧與心)回复于 2005-06-04 11:05:06 得分 0

create   table   tb1(a   int,b   int)  
  create   table   tb2(c   int,d   int)  
  insert   into   tb1   values   ('1','2')  
  insert   into   tb1   values   ('2','3')  
  insert   into   tb2   values   ('1','3')  
  insert   into   tb2   values   ('2','3')  
   
  select   *   from   tb1  
  select   *   from   tb2  
   
  select   tb1.*   from   tb1,tb2   where   tb1.a   =   tb2.c   and   tb1.b   =   tb2.dTop

5 楼hsj20041004(光芒)回复于 2005-06-04 11:06:50 得分 20

你的语句没有问题  
  ----求6个字段完全对应不上的记录  
  select   A.*   from   A,   B   where   A.药品编号<>B.药品编号   and   A.通用名<>B.通用名   and   A.剂型<>B.剂型   and   A.规格<>B.规格   and   A.包装数量<>B.包装数量   and   AA.生产企业<>B.生产企业  
   
  -----求6个字段完全对应上的记录  
  select     A.*   from   A,   B   where   A.药品编号=B.药品编号   and   A.通用名=B.通用名   and   A.剂型=B.剂型   and   A.规格=B.规格   and   A.包装数量=B.包装数量   and   AA.生产企业=B.生产企业  
   
  Top

6 楼hglhyy(為人民币服务!)回复于 2005-06-04 11:11:01 得分 0

你要A表中的对应不上的,还是B表,以什么表为准?  
   
  最好有一个关联字段Top

7 楼InTheRainbow()回复于 2005-06-04 11:15:30 得分 0

我要A中跟B中对应不上的Top

8 楼wooernet(林)回复于 2005-06-04 11:16:14 得分 10

呵呵,我自己,连题目的意思都看反了。酷晕!!  
  -----------------------  
    xluzhong(Ralph)   的是也不正确!  
  ------------  
  按他的意思,:  
  select   distinct   tab1.*   from   tab1  
  inner   join   tab2  
  on   tab1.a<>tab2.c  
  or   tab1.b<>tab2.d  
  结果  
  a     b  
  1     2  
  2     3  
  -------------  
  搂主,你自己的答案是正确的。结Top

9 楼wooernet(林)回复于 2005-06-04 11:22:40 得分 10

建议用xluzhong(Ralph)的形式,优化查询  
  只要改他的or为and就可以了。  
   
  select   distinct   tab1.*   from   tab1  
  inner   join   tab2  
  on   tab1.a<>tab2.c  
  and   tab1.b<>tab2.dTop

10 楼ShinnyZhang(张大爽)回复于 2005-06-04 11:57:34 得分 0

select   table1.*   from   table1,table2   where   table1.field1<>table2.field1   or   table1.field1=table2.field2  
   
  Top

相关问题

  • 如何在一个表中将相同的记录查出
  • 如何查找相同结构不同表的记录
  • 救.....如何查找出两表中不相同的记录?
  • 如何才可以用SQL排除表中相同的记录
  • 急!!如何从数据库中有相同记录的表中,只提取相同记录中的一个?
  • 如何提取2个mysql数据库内相同表相同相同记录并累加?
  • 如何搜索表中某字段的值相同所有记录
  • 在一个表中找出所有相同记录的语句如何写?
  • sql语句:如何查找一个表中部分相同的记录?
  • 如何在两个数据库中找出相同表中的不同记录?

关键词

  • 字段
  • 语句
  • 企业
  • 剂型
  • tab
  • tb
  • 规格
  • 包装数量
  • 表
  • 记录

得分解答快速导航

  • 帖主:InTheRainbow
  • xluzhong
  • hsj20041004
  • wooernet
  • wooernet

相关链接

  • SQL Server类图书

广告也精彩

反馈

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