2013-01-25 4 views
0

다음과 같이 SQL 쿼리 디자인을 사용합니다. 로 'IN'조건이 제대로NOT IN AND IN 조건 mysql

+2

전체 SQL 쿼리 게시 –

+0

'조건'에 'NULL'값이 있습니까? –

+0

Hi Varinder, 'IN'대신 다른 연산자를 사용할 수 있는지 알고 싶다. – Parab

답변

3

wrking되지 않고 필요에 따라 적절한 출력을 받고

SELECT (THIS ITEMS) 
FROM (TABLES) 
WHERE(SOME CONDITION) AND NOT IN (CONDITION) AND IN (CONDITION) 

하지만이 비교에 열이 필요합니다. 당신은 또한 같이 정적 비교 목록 대신 한 싱글 컬럼의 결과를 사용할 수 있습니다

예를 들어
SELECT <select_list> 
FROM <table_expression> 
WHERE <column_expression> [NOT] IN (<comparison_list>) 

,

SELECT col1, col2 
FROM tab 
WHERE col3 IN ('yes', 'no') 
AND col4 NOT IN ('no', 'maybe') 

참고 : 올바른 구문합니다 (column_expression주의)한다 :

SELECT col1, col2 
FROM tab 
WHERE col3 IN (SELECT filterValues FROM table2) 

하지만 훨씬 더 최적 우리에게있다 이 경우에 대한 EXISTS 절을 E :

SELECT col1, col2 
FROM tab 
WHERE EXISTS (SELECT 1 FROM table2 WHERE filterValues = col3) 
0

당신은 특정 조건의 주위에 괄호가 필요합니다.

Example 1: 
Select all persons who are active and have an invoice 
Person->Invoice (1 to Many) 
SELECT * FROM person WHERE active=1 AND person_id IN (SELECT person_id FROM invoice) 

Example 2: 
Select all person who are active, do not have a cat, and have an invoice 

SELECT * FROM person WHERE active=1 AND person_id NOT IN (SELECT person_id FROM people_with_cats) AND person_id IN (SELECT person_id FROM invoice)