2015-06-09 4 views
0

Хотелось бы сделать UNION (MySQL, но PostgreSQL тоже их) в запросе HoneySQL. Searching the source code предполагает, что это возможно, но не предполагает очевидного подхода к попытке.Union in HoneySQL

ответ

1

Там, кажется, не быть никакой вспомогательной функции, но вы можете использовать SQL/сборки:

(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)))