HoneySQL 中的联合

Posted

技术标签:

【中文标题】HoneySQL 中的联合【英文标题】:Union in HoneySQL 【发布时间】:2015-06-09 19:11:29 【问题描述】:

想在 HoneySQL 查询中创建 UNIONmysql,但 PostgreSQL 也有)。 Searching the source code 表示有可能,但没有提出明显的尝试方法。

【问题讨论】:

【参考方案1】:

貌似没有辅助函数,但是可以使用sql/build:

(sql/format (sql/build :union [(-> (select :*)
                               (from :table1))
                           (-> (select :*)
                               (from :table2))]))

=> ["(SELECT * FROM table1) UNION (SELECT * FROM table2)"]

这个助手可以工作,虽然它与其他助手不太习惯:

(defhelper union [m1 m2]
  :union [m1 m2])

(sql/format (union (-> (select :*) (from :table1))
                   (-> (select :*) (from :table2)))

【讨论】:

以上是关于HoneySQL 中的联合的主要内容,如果未能解决你的问题,请参考以下文章

联合索引

C#中的可区分联合

探讨C语言中的“联合“类型

mysql中的联合查询(内联左联外联右联全联)

为啥联合类型中的“从不”类型毫无意义?

为啥递归联合不适用于 PostgreSQL 中的复合类型