Обработка подзапроса MySQL, возвращающего несколько строк

#mysql

#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 (subquery) ?

Ответ №1:

Вы ищете в предложении

 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. Я считаю, что это было бы более эффективно в любом случае.