首页 > 解决方案 > 用于orm方法的Golang gorm联合函数

问题描述

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

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

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

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

我怎么能用gorm中的ORM方法做到这一点?或者甚至有可能吗?

标签: gouniongrails-orm

解决方案


我不认为工会在gorm中实施。

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


推荐阅读