2014-12-10 4 views
-5

выражение IN (значение1 ИЛИ значение2 ИЛИ .... значение_n)! ОКSQL: IN CONDITION

SELECT name 
FROM orders 
WHERE number IN (10000, 10001, 10003, 10005); 

является

SELECT name 
FROM orders 
WHERE number = 10000 
OR number = 10001 
OR number = 10003 
OR number = 10005; 

, как это сделать?

выражение IN (значение1 И значение2 И .... значение_n)?

SELECT name 
    FROM orders 
    WHERE number = 10000 
    AND number = 10001 
    AND number = 10003 
    AND number = 10005; 

enter image description here

havaleid и ProductID внешние ключи.

enter image description here

В (62,63,61) равно с IN (62,61) или ...

Есть не значение 63 в таблице

запрос : IN (62 OR 61 OR 63)

это право?

моя цель: IN (62 И 61 И 63)

и для этого запроса, ничего взамен ...

как это сделать?

мой английский слабоват, извините Благодаря

+2

Этот запрос не имеет смысла. В каждой строке «номер» может принимать только одно из этих значений, поэтому никакие строки не будут возвращены. – Kevin

+2

Как может число одновременно быть равно четырем различным числам? что вы на самом деле пытаетесь сделать здесь ?! – RobP

+1

В чем вопрос? Не совсем ясно, что вы пытаетесь спросить. –

ответ

4

Я думаю, что вы ищете, все имена, которые имеют все назначенные номера. Что-то вроде этого:

SELECT name 
    FROM orders 
    WHERE number IN (10000, 10001, 10003, 10005) 
    GROUP BY name 
    HAVING COUNT(DISTINCT number) = 4; 

COUNT(DISTINCT... гарантирует, что каждый name вернулся имеет все четыре из этих number установленных значений.

+2

Это имеет наибольший смысл, учитывая имеющуюся информацию. – gmiley

+0

@Joe Stefanelli Большое спасибо за лучший ответ – user2038046