2011-05-06 5 views
0

또는과 결합 된 두 조건 대신 SELECT 명령 또는 중첩 SELECT를 어떻게 사용할 수 있습니까? 난 당신이 예를 들어, 사용하여 중첩 된 SELECT 문에 을 구현할 수 있습니다 알고 대신두 개의 OR 조건 대신 SELECT 명령을 사용 하시겠습니까?

select name from (select * from students where grade > C) where age > 25 
-- select name from (select * from students where grade > C) as std1 where age > 25 

을 :

select name from students where age > 25 and grade > C 

(만 선택 명령).

하지만 OR을 사용하지 않고 어떻게 OR 조건을 얻습니까? 중첩 된 쿼리에 필터를 적용하여 동일한 결과를 달성 할 수 있도록, 상위 아닌 부분 집합에 OR 결과를 적용

SELECT name FROM students WHERE age > 25 OR grade > C 
+1

내가 무엇을 묻고 있는지 이해할 수 없습니까? –

+0

@Duncan : 그는 "중첩 된 쿼리에 필터를 적용하여 다시 작성하는 방법"을 묻고 있다고 생각합니다. – Quassnoi

+0

@ Quassnoi : 아! 이 경우 귀하의 솔루션이 좋습니다. 선택시에만 –

답변

2

. ,

SELECT * 
FROM students 
WHERE age > 25 
UNION 
SELECT * 
FROM students 
WHERE grade > C 

SELECT * 
FROM students 
WHERE age > 25 OR grade > C 

과 동일 students에 정의 된 PRIMARY KEY이 제공 :

당신은 UNION 사용하여 재 작성 할 수 있습니다.

+0

. a 또는 b = not (not (a) and not (b)) – sohrab

+1

@sohrab : 중첩 된 쿼리에 필터를 적용하면이를 수행 할 수 없습니다. – Quassnoi

+0

분명히 중첩 된 query.query select only.i로 작성한 것은 select.maybe와 OR을 다시 작성하는 것을 의미합니다. a 또는 b = not (not (a) 및 not (b)) – sohrab

관련 문제