2017-04-07 48 views
0

我正在使用sqlite3數據庫並擁有這兩個表。Knex - 更新行中選擇的值

列表

  • ID
  • OriginID

屬性

  • ID
  • ListID
  • OriginList

Attributes.OriginList == List.OriginID

我需要在屬性更新行,以匹配當前List.ID.我使用Knex和我目前的原始查詢看起來是這樣的:

UPDATE Attributes 
SET ListID = (SELECT ID 
       FROM List 
       WHERE OriginID = Attributes.OriginList) 

我剛開始用DB和一直在試圖想出的辦法做到不生,但都沒有成功。有沒有這樣的方式?

回答

0

像這樣的東西應該創造OP提到的RAW查詢:

knex('Attributes').update({ 
    ListID: knex('List').select('ID').where('OriginID', knex.raw('??', ['Attributes.OriginList'])) 
}) 
+0

曾擔任意,謝謝你。 – Kuasta