标签: go go-gorm
我想执行一个子查询,如:
SELECT id, col1, col2 FROM table1 WHERE col1='val1' and col2 NOT IN ( SELECT ID FROM table2 WHERE col1='val1' and col3 = 'val3')
如何使用GORM来执行它?
答案 0 :(得分:1)
GORM可以compose个查询。
编写标准查询,然后调用.SubQuery()方法:
.SubQuery()
sub := db.Table("table2").Select("ID").Where("col1 = ?", 'val1').SubQuery()
您可以将其作为参数放置在.Where()方法中
.Where()
err := db.Table("table1").Where("col2 NOT IN ?", sub).Find(&table1Type).Error //handle the error