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

伸手求一个 gorm 的查询方法

  •  
  •   zxCoder · 2020-10-29 11:03:24 +08:00 · 638 次点击
    这是一个创建于 1274 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了一上午文档还没写出来

    post tag post_tag_relation 三个表,post 和 tag 是多对多关系

    现在要从关系表中查找某个 tagId 对应的所有 postId,再查这些 postId 对应的 post 信息,就包括把每个 post 对应的所有 tag 也查出来,有什么方便的方法吗

    因为查询条件不确定,所以目前是这样写的

    tagId,ok:=para["tagId"]
    	if ok{
    		tagId=int(tagId.(float64))
    		var postIds []int64
    		var rels []models.PostTagRelation
    		err := db.Table("post_tag_relation").Where("tag_id=?", tagId).Where("del=?",0).Select("postId").Find(&rels).Error
    		if err != nil {
    			log.Println("query error: ", err)
    			c.JSON(200, failResp)
    			return
    		}
    		for _, rel := range rels {
    			postIds = append(postIds, rel.PostId)
    		}
    		db2=db2.Where("id in (?)",postIds)
    	}
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5895 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:20 · PVG 14:20 · LAX 23:20 · JFK 02:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.