一个简单的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 行受影响)**/