GORM的多对多联表带条件查询怎么写

问题描述?

例如这个sql语句:

select a.*, b.* from a left join b on a.id=b.aid where a.tag=1 and b.tag=2

请问用GORM怎么实现,文档里面说的Joins只能使用在一对一的场景下,Preload在右表记录不存在时也会把左表记录返回,请问有什么好的解决方法

zhangatle
讨论数量: 4
db.Table("a").Select("a.*, b.*").Joins("left join b on a.id = b.aid").Where("a.tag = ? and b.tag = ?",1,2).Scan(&Results)
2年前 评论
zhangatle (楼主) 2年前

file 难道不是这样的吗?

2年前 评论

你写的sql和你想要的有些问题吧。你想要的是多对多的时候的inner查询,给的sql是left的。
看你想要的情况可以看查询《GORM 中文文档》 joins部分,join不止一对一

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!