go - 用于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方法做到这一点?或者甚至有可能吗?
解决方案
我不认为工会在gorm中实施。
但是您可以通过此方法将原始查询与联合和编组结果一起执行到所需的结构中 - https://gorm.io/docs/sql_builder.html#Raw-SQL
推荐阅读
- javascript - 如何访问 forEach 中的外部变量?
- reactjs - PubSub 在客户端页面中不起作用,但在 Graphql 游乐场中起作用 - TypeError: data.getPosts is not iterable
- android - 我正在尝试使用这些代码行生成发布 sha1 证书指纹
- html - 通过 Django 上的基于类的视图将聚合总和传递给 Html 页面
- reactjs - 可转换为数字的字符串的 PropType?
- angular - Angular 订阅者 - 当组件销毁时自动取消订阅订阅者
- ruby-on-rails - Rails:跨两列连接
- mobx - Mobx / React 更新问题
- laravel - 无法在请求中获取订阅 ID
- php - 将 Laravel 应用程序部署到 Google App Engine