Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 通过另一个表中的多个列对表进行子集设置_Sql_Postgresql_Exists - Fatal编程技术网

Sql 通过另一个表中的多个列对表进行子集设置

Sql 通过另一个表中的多个列对表进行子集设置,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

从下面的表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   |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;