伸手求一个 gorm 的查询方法

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

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)
	}

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注