登录
首页 >  Golang >  Go问答

使用Golang的gorm库中的Union函数执行ORM操作

来源:stackoverflow

时间:2024-03-26 11:51:35 135浏览 收藏

在 Go 的 gorm 库中执行 ORM 操作时,如何使用 Union 函数来联合两个查询结果?gorm 本身不提供 Union 方法,但可以使用原始 SQL 查询并将其结果映射到所需的结构中来实现。这可以通过使用 gorm 的 `Raw()` 方法来实现。

问题内容

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

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 方法来做到这一点?或者说有可能吗?


正确答案


我认为 gorm 中没有实现 union。

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

终于介绍完啦!小伙伴们,这篇关于《使用Golang的gorm库中的Union函数执行ORM操作》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>