首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按结果查找行?

如何按结果查找行?
EN

Stack Overflow用户
提问于 2021-11-11 15:18:10
回答 1查看 131关注 0票数 2

我有张桌子:

代码语言:javascript
复制
               room_id                |    user_id    |  role
--------------------------------------+---------------+--------
 a1d11dcb-b399-4282-9ec2-7dc3df6d1f88 | usrZK8kZTzEHC | member
 a1d11dcb-b399-4282-9ec2-7dc3df6d1f88 | usrItug3Lj2c5 | member
 c2503ab5-1ee4-428a-be1a-d561f6fab068 | usrItug3Lj2c5 | member
 c2503ab5-1ee4-428a-be1a-d561f6fab068 | usrh8hqEpSWLG | member
 9c866cc2-91f1-4658-9843-2c31cff2edfa | usrItug3Lj2c5 | member
 9c866cc2-91f1-4658-9843-2c31cff2edfa | usrh8hqEpSWLG | member
 0e63d78f-3b51-42f7-9ca3-80b93ede6a82 | usrZK8kZTzEHC | member
 0e63d78f-3b51-42f7-9ca3-80b93ede6a82 | usrh8hqEpSWLG | member

我希望用user_id=usrItug3Lj2c5选择所有行

同时,还需要查找user_id=usrItug3Lj2c5,如果room_id与该行相同,是否也会被搜索出来。

例如:

在上面,我需要搜索:

代码语言:javascript
复制
               room_id                |    user_id    |  role
--------------------------------------+---------------+--------
 a1d11dcb-b399-4282-9ec2-7dc3df6d1f88 | usrZK8kZTzEHC | member
 a1d11dcb-b399-4282-9ec2-7dc3df6d1f88 | usrItug3Lj2c5 | member
 c2503ab5-1ee4-428a-be1a-d561f6fab068 | usrItug3Lj2c5 | member
 c2503ab5-1ee4-428a-be1a-d561f6fab068 | usrh8hqEpSWLG | member
 9c866cc2-91f1-4658-9843-2c31cff2edfa | usrItug3Lj2c5 | member
 9c866cc2-91f1-4658-9843-2c31cff2edfa | usrh8hqEpSWLG | member

在这种情况下,如何用gorm写?

EN

回答 1

Stack Overflow用户

发布于 2022-09-22 02:13:09

当您准备好原始sql时,这很容易。然后你可以很容易地用戈姆的方式重写它。

原始SQL

代码语言:javascript
复制
SELECT t2.* FROM "tablename" AS t2 where t2.room_id IN (SELECT t1.room_id FROM "tablename" AS t1 where t1.user_id = 'usrItug3Lj2c5')

戈姆

代码语言:javascript
复制
var res UserRoom // just assuming the type
subquery := db.Select("t1.room_id").
    Table("tablename as t1").
    Where("t1.user_id = ?", userID)

err := db.Select("t2.*").
      Table("tablename as t2").
      Where("t2.room_id IN (?)", subquery).
      Scan(&res).Error

希望这能成功!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69930724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档