伸手求一个 gorm 的查询方法

2020 年 10 月 29 日
 zxCoder

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

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)
	}
917 次点击
所在节点    Go 编程语言
0 条回复

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

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

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

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

© 2021 V2EX