2013-03-30 4 views

ответ

2

использование IN сверху.

IN может обрабатывать несколько значений, в то время как = может содержать только один.

SELECT tb1.column1, tb1.column2 
FROM table1 AS tb1 
WHERE tb1.column1 IN (SELECT tb2.column2 FROM table2 As tb2) 

или альтернативный способ заключается в использовании JOIN, который является более предпочтительным,

SELECT DISTINCT tb1.column1, tb1.column2 
FROM table1 AS tb1 
     INNER JOIN table2 b 
      ON tb1.column1 = b.column2 
+0

но .... есть еще чем 2 результата выходят во внутреннем выборе – user2218255

+0

@ user2218255 Что вы подразумеваете под 2 результатами от внутреннего выбора? –

+0

thz .. я понял! – user2218255

1

Вы должны использовать in вместо =:

SELECT tb1.column1, tb1.column2 
FROM table1 AS tb1 
WHERE tb1.column1 in (SELECT tb2.column2 FROM table2 As tb2) 
+0

, но .... Есть более двух результатов выходят во внутреннем выборе – user2218255

+0

@ user2218255, и именно поэтому вы используете 'in' вместо' = '. –

Смежные вопросы