2012-10-17 111 views
2

興趣我有一個查詢說,MySQL查詢 - 不使用內部查詢

select col1,col2 from table1; 

其返回多行2列。我想在另一個查詢的條件中使用這兩個值。像

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

col1哪裏和col2東西是所述第一查詢的結果值。

目前我已經使用內部查詢類似

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

但我不想使用內查詢如上所示的一個,因爲它會減慢帶來的結果。

請建議。

回答

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 
+0

感謝它的工作。我已經使用了第一個查詢,因爲我在已經存在的查詢中有很多複雜性。 – Arun