2014-04-01 4 views
1

MySQL에서 하위 쿼리 조합을 가져오고 싶습니다. 이것만으로도 매우 간단합니다.MySQL 중첩 유니온 대체품

(subquery A) 
union 
(subquery B limit 15) 
union 
(subquery C limit 15) 

하지만 B와 C의 합집합이 총 30 개 레코드 여야합니다. B가 15보다 작 으면 나머지를 채우기 위해 C가 필요합니다. 그래서 이것을 시도 :

(subquery B limit 15) 
union 
(subquery C) 
limit 30 

그리고 그게 내가 원하는 것을 가져옵니다. A를 다시 추가하면 중첩 된 공용체가 만들어 지므로 MySQL에서 구문 오류가 발생합니다.

(subquery A) 
union 
(
(subquery B limit 15) 
    union 
(subquery C) 
    limit 30 
) 

동일한 최종 결과를 얻는 다른 방법이 있습니까?

답변

0

어쩌면했다

(select x from a) 
union 
(select * from 
(
    (select y from b limit 15) 
    union 
    (select z from c) 
    limit 30 
) as k 
) 
+0

같은. 감사! – makeitbetter

+0

알고 기쁩니다. – Leo