MySQL Query - 对使用内部查询不感兴趣

时间:2012-10-17 08:53:19

标签: mysql sql join

我有一个查询说,

select col1,col2 from table1;

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

这样的东西
select col3,col4 from table2 where col5=col1 and col6=col2;

其中col1col2是第一个查询的结果值。

目前我使用内部查询类似

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

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

请建议。

1 个答案:

答案 0 :(得分:2)

JOIN他们而不是像IN那样使用:

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