Postgresql 如何通过比较SqlKorma(clojure)中的两个字段来生成where子句

Postgresql 如何通过比较SqlKorma(clojure)中的两个字段来生成where子句,postgresql,clojure,korma,Postgresql,Clojure,Korma,我正在使用Postgresql和sqlkorma 0.4 CREATE TABLE mytable (id serial PRIMARY KEY, a integer NOT NULL, b integer NOT NULL); 如何制作: SELECT * FROM mytable WHERE a > b 我试过了 (defentity mytable (pk :id) (table :mytable)) 及 但它不起作用 我不确定这是否是一个有

我正在使用Postgresql和sqlkorma 0.4

CREATE TABLE mytable (id serial PRIMARY KEY, 
   a integer NOT NULL, b integer NOT NULL);
如何制作:

SELECT * FROM mytable WHERE a > b
我试过了

(defentity mytable
       (pk :id)
       (table :mytable))


但它不起作用

我不确定这是否是一个有效的答案,但我建议看看Yesql:

在大多数情况下,您不需要DSL来重复SQL已经完成的工作


我自己也经常使用Korma,发现自己花了太多时间将SQL转换成Korma语法,就像这样。

我不确定这是否是一个有效的答案,但我建议看看Yesql:

(sql-only
  (select my-table (where {:a [> :b]})))
;; => "SELECT `my-table`.* FROM `my-table` WHERE (`my-table`.`a` > `my-table`.`b`)"

在大多数情况下,您不需要DSL来重复SQL已经完成的工作


我自己也经常使用Korma,发现自己花了太多时间把SQL转换成这样的Korma语法。

但你的意思是什么?我应该用sql编写查询吗?我认为DSL具有IDE语法检查的优势。Korma的上一次发布是2014年8月27日,最后一次提交是17天前(2014年12月26日)。我想可以肯定地说,它仍然被保留着。@好奇请花些时间阅读Yesql的自述。Clojure DSL for SQL在IDE的支持方面不如纯文本SQL。@Kyle好吧,我对Korma的维护错了。谢谢你指出,但你是什么意思?我应该用sql编写查询吗?我认为DSL具有IDE语法检查的优势。Korma的上一次发布是2014年8月27日,最后一次提交是17天前(2014年12月26日)。我想可以肯定地说,它仍然被保留着。@好奇请花些时间阅读Yesql的自述。Clojure DSL for SQL在IDE的支持方面不如纯文本SQL。@Kyle好吧,我对Korma的维护错了。谢谢你指出
(sql-only
  (select my-table (where {:a [> :b]})))
;; => "SELECT `my-table`.* FROM `my-table` WHERE (`my-table`.`a` > `my-table`.`b`)"