HoneySQL中的联盟

时间:2015-06-09 19:11:30

标签: clojure honeysql

想在HoneySQL查询中创建UNION(MySQL,但PostgreSQL也有它们)。 Searching the source code表明这可能是可能的,但并未提出一种明显的尝试方法。

1 个答案:

答案 0 :(得分:2)

似乎没有辅助函数,但您可以使用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)))