たとえば、テーブルに次の gorm オブジェクトがあります。
user
+----+------+
| id | name |
+----+------+
| 1 | John |
+----+------+
| 2 | Jane |
+----+------+
phones
+----+------+
| id |number|
+----+------+
| 1 | 0945 |
+----+------+
| 2 | 0950 |
+----+------+
| 3 | 1045 |
+----+------+
user_phones
+----+-------+--------+
| id |user_id|phone_id|
+----+-------+--------+
| 1 | 1 | 1 |
+----+-------+--------+
| 2 | 1 | 2 |
+----+-------+--------+
| 3 | 2 | 3 |
+----+-------+--------+
gorm では、ユーザーが指定されていないすべての電話を選択したいと思います。次のようなもの: select * phones where user_phones.user_id != 1 それが私が試したことです:
Gdb.Order("id desc").Where("status = ?", true).Find(&phones).Related("UserPhones").Not("UserPhones.User.ID = ?", user.ID)