gorm 在用 JOIN 时, 怎么不让其他的条件给加进来

2022 年 1 月 3 日
 xpyusrs
tx := g.DB.Model(&list).Where("user_id = ?", "1")
tx = tx.Joins("inner join orders on orders.shop_id = ?", "123")
tx.Where("item_id = ?", "111")

如上面代码, tx.Joins 生成的连表, 我只想要我写的那个条件, gorm 还会把user_idtem_id也给加进去

2622 次点击
所在节点    Go 编程语言
7 条回复
iseki
2022 年 1 月 3 日
你是不是配置了外键什么的在 model struct 上
xpyusrs
2022 年 1 月 4 日
@iseki 外键我都没关闭的, 全靠引用来关联数据
iseki
2022 年 1 月 4 日
@xpyusrs 唔,我眼花了,你明明自己写了俩条件进去,GORM 肯定有啊
yrj
2022 年 1 月 4 日
你自己写了两个 where 啊?去掉不就好了吗??
ezioruan
2022 年 1 月 4 日
直接写 raw sql 吧
ni9ht
2022 年 1 月 4 日
user_id 和 tem_id 是主表的条件?那就在字段前面加上表名:XXTable.user_id ,还有最好是把那两个字段放在 join 后面。
GeminiPro
2022 年 1 月 7 日
把它变成 raw sql 看看做了什么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825963

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX