2011-04-27 27 views
6

Aquí está mi ejemplo:Manipulación de MySQL subconsulta devuelve varias filas

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

El problema que estoy corriendo en mi consulta es que tiene que devolver varias filas si la subconsulta devuelve varias filas.

Lo ideal sería que se traduciría en algo similar a:

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

¿Cómo puedo hacer que esto suceda? ¡Gracias!

+1

¿Y si lo hace 'row_y EN (subconsulta)'? – Compeek

Respuesta

15

Usted está buscando cláusula 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

Creo que esto sería más eficiente de todos modos. – Compeek

Cuestiones relacionadas