GORMにwhere not 複数条件 が無かったから頑張った話
何がしたいかと言えば、Where句で指定した条件に合致しないデータを取得したい。
where not (条件1,条件2...)みたいな感じでいけると思いきや、マニュアルでは単独条件のwhere notの例しか無かった。 JoinsとQueryExpr(サブクエリ)で、NOT IN使用して無理やり作ってみた。
// subはメソッドチェーンで、a.idと比較するidを設定してる。 db.Joins("a.id NOT IN (?)", sub.QueryExpr()).Find(&Orders)
シンプルにwhere not指定できないものか。。
◆参考 Query | GORM - The fantastic ORM library for Golang, aims to be developer friendly.