2011-04-27 37 views
6

這裏是我的例子:處理MySQL的子查詢返回多行

select row_x from table_1 where row_y = (select row_a from table_2 where row_b = x) 

是我遇到的問題是,我的查詢需要,如果子查詢返回多行返回多行。

理想的情況下,將轉化爲類似於:

'select row_x from table_1 where row_y = '<first row from subquery>' or row_y = '<second row from subquery>' etc. 

我怎樣才能做到這一點?謝謝!

+1

如果你什麼'row_y IN(子查詢)'? – Compeek 2011-04-27 17:56:34

回答

15

您正在尋找IN子句

select row_x from table_1 
where row_y 
IN (
    select row_a from table_2 where row_b = x 
    ) 
2
SELECT t1.row_x FROM table_1 t1 JOIN table_2 t2 ON t1.row_y=t2.row_a WHERE t2.row_b = x 
+1

無論如何,我相信這樣會更有效率。 – Compeek 2011-04-27 18:02:02