V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
xpyusrs
V2EX  ›  Go 编程语言

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

  •  
  •   xpyusrs · 2022-01-03 22:43:07 +08:00 · 2169 次点击
    这是一个创建于 1080 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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也给加进去

    7 条回复    2022-01-07 20:58:57 +08:00
    iseki
        1
    iseki  
       2022-01-03 23:26:46 +08:00
    你是不是配置了外键什么的在 model struct 上
    xpyusrs
        2
    xpyusrs  
    OP
       2022-01-04 00:18:33 +08:00
    @iseki 外键我都没关闭的, 全靠引用来关联数据
    iseki
        3
    iseki  
       2022-01-04 01:47:18 +08:00
    @xpyusrs 唔,我眼花了,你明明自己写了俩条件进去,GORM 肯定有啊
    yrj
        4
    yrj  
       2022-01-04 03:51:59 +08:00 via iPad
    你自己写了两个 where 啊?去掉不就好了吗??
    ezioruan
        5
    ezioruan  
       2022-01-04 12:03:58 +08:00
    直接写 raw sql 吧
    ni9ht
        6
    ni9ht  
       2022-01-04 17:52:51 +08:00
    user_id 和 tem_id 是主表的条件?那就在字段前面加上表名:XXTable.user_id ,还有最好是把那两个字段放在 join 后面。
    tyrantZhao
        7
    tyrantZhao  
       2022-01-07 20:58:57 +08:00
    把它变成 raw sql 看看做了什么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1525 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:05 · PVG 01:05 · LAX 09:05 · JFK 12:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.