2016-05-25 15 views
5

私は次のクエリのような何かをしたいと思います(なし本棚)のみknexjsを使用した:私はこれを行うときknexjsでは、.where()関数の2つの列を比較するにはどうすればよいですか?

select * from table1 where column1 < column2 

しかし、:

.table("table1").select().where("column1", "<", "column2") 

を生成knexjs SQLは次のとおりです。

select * from table1 where column1 < 'column2' 

希望の結果が得られないb/cは、列の値を比較していないため、文字列 'column2'の値を比較しています。

誰でも私が望んでいることをする方法を知っていますか?ありがとう!

答えて

7

だから、いくつかの掘削の後、それはそれができるように見えるこの方法。これがベストプラクティスですが、私はそうでない音がするまで、現時点では、それはそう動作するかどうか...わからない

.table("table1").select().where("column1", "<", knex.raw("table1.column2")) 

は再び、理想的ではないが、それは仕事を取得します。ちょうどあなたがでこれを使用しているものは何でも、ファイルの先頭に

import knex from "knex"; 

へ。

+2

.whereRaw( "?? = ??"、[ "COLUMN1"、 "COLUMN2"])を確認してくださいすることはあまりにも動作します –

関連する問題