用于 orm 方法的 Golang gorm 联合函数

Golang gorm union function for orm approach

我正在尝试将两个结果相互结合,我可以使用的 sql-查询如下所示:

SELECT id, created_at, updated_at, deleted_at, user_id, friend_id 
FROM public.friendlists where user_id = 
union all 
SELECT id, created_at, updated_at, deleted_at, user_id, friend_id
FROM public.friendlists where friend_id = 

我知道我可以只使用 sql 语句或只连接两个结果。我只是想找到一种方法,因为我很好奇如何处理这个问题并避免硬编码 sql 语句。 以下代码是我目前所拥有的:

db.Where(&models.Friendlist{UserId: userID}).
Or(&models.Friendlist{FriendId: userID}).
Order("created_at desc").
Find(&result)

我如何使用 gorm 中的 ORM 方法来做到这一点?或者有可能吗?

我不认为 union 在 gorm 中实现。

但您可以使用联合执行原始查询并将结果编组到通过此方法所需的结构中 - https://gorm.io/docs/sql_builder.html#Raw-SQL