解決したいこと
GoのMasterminds/squirrelをつかって開発をしています。
Updateをする際に、他のテーブルをJoinしてそこのデータからWhereで条件をつけたいと考えています。
PostgresではUpdateの際のJoinが使えないということで以下のようなSQLをsquirrelで実現したいです。
SQL
1UPDATE table1 SET column = value 2FROM table2 3WHERE table1.column2 = table2.column2
また、現在の私のコードはこのような状態です。
Whereの部分を変更して別テーブルの値を条件にしたいと思っています。
SQLと同様の形でquirrelでも書いてみたのですがUnreference
等のエラーが出てしまいます。
(↓のコード中ではFromが使用できないため。UpdateBuilderではFromは定義されていない)
何か分かられる方はご教示お願いします。
Go
1query, args, err := (sq.StatementBuilder.PlaceholderFormat(sq.Dollar). 2 Update(`"user"`). 3 SetMap(data). 4 Where(sq.Eq{`"user_id"`: 10}). 5 ToSql() 6 if err != nil { 7 return err 8 } 9 r, err := tx.Exec(query, args...) 10 if err != nil { 11 return err 12 } 13 if err := p.exec(r, 1); err != nil { 14 return err 15 } 16 return nil
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 14:29
2020/06/11 00:09
2020/06/11 00:51
2020/06/11 03:08
2020/06/11 03:46
2020/06/11 04:03
2020/06/11 04:09