2014-04-01 167 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