Sql 通过另一个表中的多个列对表进行子集设置
从下面的表A中,我想选择A2=1的行以及A1-A3组合作为B1-B2组合存在于下面的表B中的行。结果应该是表C。我怎么做?我的实际桌子很大,所以效率很重要。多谢各位 表ASql 通过另一个表中的多个列对表进行子集设置,sql,postgresql,exists,Sql,Postgresql,Exists,从下面的表A中,我想选择A2=1的行以及A1-A3组合作为B1-B2组合存在于下面的表B中的行。结果应该是表C。我怎么做?我的实际桌子很大,所以效率很重要。多谢各位 表A A1 |A2 |A3 |A4 -----+----+----+---- a |1 |9 |o b |1 |10 |k c |0 |2 |d d |0 |12 |f e |1 |8 |g f |1 |14 |h e |1
A1 |A2 |A3 |A4
-----+----+----+----
a |1 |9 |o
b |1 |10 |k
c |0 |2 |d
d |0 |12 |f
e |1 |8 |g
f |1 |14 |h
e |1 |12 |p
表B
B1 |B2 |B3
-----+----+----
a |9 |k
a |9 |l
c |2 |m
e |8 |o
c |3 |p
e |8 |q
表C
A1 |A2 |A3 |A4
-----+----+----+----
a |1 |9 |o
e |1 |8 |g
根据您的表架构:
select A1, A2, A3, A4
from tableA
inner join tablaB
on A1 = B1
and A3 = B2
where A2 = 1;
A1、A2、A3上是否有任何索引?目前没有,但添加一个索引将如何提高性能?它将如何影响查询语法?您可以在A1=B1和A3=B2上使用带有
的联接,谢谢,我们将对此进行研究。
select A1, A2, A3, A4
from tableA
inner join tablaB
on A1 = B1
and A3 = B2
where A2 = 1;