2015-03-16 2 views
3

Мой вопрос похож на этот.Оператор SQL IN с несколькими операторами SELECT в нем

Check if column value exists in another column in SQL

В моем случае, однако, вы до пяти отдельных операторов в IN заявлении. Это выглядит примерно так:

SELECT Criterion1 FROM tblFilter WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter, SELECT Criterion3 FROM tblFilter)

Тем не менее, когда я запускаю его на vb.net, я получил ошибку синтаксиса из этого запроса. Итак, что же верно?

ответ

2

Для доступа к SQL вам нужно будет использовать конструкцию вроде этого:

SELECT ... 
FROM tblFilter 
WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter) 
    OR Criterion1 IN (SELECT Criterion3 FROM tblFilter) 
+0

Работал безупречно! Браво! – Caesium95

0

Попробуйте это:

SELECT Criterion1 FROM tblFilter WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter UNION SELECT Criterion3 FROM tblFilte

СОЕДИНЕНИЕ объединяются вместе ваши оба выберите stetments, но они должны возвращать одинаковое количество элемента (1 в вашем stetment) и того же типа.

EDIT: Попробуйте это:

SELECT Criterion1 FROM tblFilter t1, tblFilter t2, tblFilter t3 WHERE t1.Criterion1 = t2.Criterion2 OR t1.Criterion2 = t3.Criterion3

+2

Access SQL не поддерживает 'UNION [ALL]' в подзапросов. –

0

ВЫБОР Criterion1 ОТ tblFilter ГДЕ Criterion1 В ( ВЫБЕРИТЕ критериус2 FROM tblFilter)

или Criterion1 в ( ВЫБОР Criterion3 ИЗ tblFilter )

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