如何找出2个表中不相同的记录
现在有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




