2

我有一个问题说,

select col1,col2 from table1;

它返回多行的 2 列。我想在另一个查询的 where 条件下使用这两个值。就像是

select col3,col4 from table2 where col5=col1 and col6=col2;

wherecol1col2是第一个查询的结果值。

目前我使用了类似的内部查询

select col3,col4 from table2 
where col5 in (select col1 from table1) 
  and col6 in (select col2 from table1);

但我不想使用上面显示的内部查询,因为它会减慢结果。

请建议。

4

1 回答 1

2

JOIN他们而不是像这样使用IN's:

SELECT t2.col3, t2.col4 
FROM table2 t2
INNER JOIN
(
   SELECT col1, col2 
   FROM table1
) t1 ON t2.col5 = t1.col1 AND t2.col6 = t1.col2

请注意,您不需要选择第二个表中的特定列。您可以像这样直接JOIN第二个表table1

SELECT t2.col3, t2.col4 
FROM table2 t2
INNER JOIN table1 t1 ON  t2.col5 = t1.col1 
                     AND t2.col6 = t1.col2
于 2012-10-17T08:59:50.463 回答