我想在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
)


有没有其他方法可以得到相同的最终结果?

最佳答案

也许像

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

10-08 18:49