读书人

一个简单的SQL查询语句看哪位高手能

发布时间: 2012-04-27 11:57:44 作者: rapoo

一个简单的SQL查询语句,看谁能捡这个便宜分!
有两个表,分别为表A,表B

表A字段及内容:

序号 A1 B1 C1 D1
1 1 2 6 7
2 4 7 3 2
3 0 9 2 1
4 1 2 3 4
........

表B字段及内容:

日期 A1 B1 C1 D1
06 5 2 4 7
09 1 2 3 8
11 8 2 7 2
12 3 1 6 5
........

我现在想在表A中查询满足如下条件的记录
表A的A1=表B的A1 且 表A的 A2=表B的A2 且 表A的 A3=表B的A3,其它字段可以不相同

以本例那么上面查出的结果就应该为
序号 A1 B1 C1 D1
4 1 2 3 4

因为在表A中只有这一条的A1,B1,C1和表B的这三个字段相同

[解决办法]
select *
from ta a
where exists(select 1 from tb where a.a1 = a1 and a.a2 = a2 and a.a3 = a3)
[解决办法]

SQL code
if object_id('[A]') is not null drop table [A]gocreate table [A]([序号] int,[A1] int,[B1] int,[C1] int,[D1] int)insert [A]select 1,1,2,6,7 union allselect 2,4,7,3,2 union allselect 3,0,9,2,1 union allselect 4,1,2,3,4goif object_id('[B]') is not null drop table [B]gocreate table [B]([日期] varchar(2),[A1] int,[B1] int,[C1] int,[D1] int)insert [B]select '06',5,2,4,7 union allselect '09',1,2,3,8 union allselect '11',8,2,7,2 union allselect '12',3,1,6,5goSELECT *  FROM A WHERE EXISTS(SELECT 1 FROM B WHERE A1=A.A1 AND B1=A.B1 AND C1=A.C1)/**序号          A1          B1          C1          D1----------- ----------- ----------- ----------- -----------4           1           2           3           4(1 行受影响)**/ 

读书人网 >SQL Server

热点推荐