一个简单的SQL查询语句,看哪位高手能捡这个便宜分
一个简单的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)
------解决方案--------------------
有两个表,分别为表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] go create table [A]([序号] int,[A1] int,[B1] int,[C1] int,[D1] int) insert [A] select 1,1,2,6,7 union all select 2,4,7,3,2 union all select 3,0,9,2,1 union all select 4,1,2,3,4 go if object_id('[B]') is not null drop table [B] go create table [B]([日期] varchar(2),[A1] int,[B1] int,[C1] int,[D1] int) insert [B] select '06',5,2,4,7 union all select '09',1,2,3,8 union all select '11',8,2,7,2 union all select '12',3,1,6,5 go SELECT * 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 行受影响) **/