GORM&x27;不在';子查询

GORM&x27;不在';子查询,go,go-gorm,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') 如何使用来执行它?可以执行查询 编写标准查询,然后调用.SubQuery()方法: sub := db.Table("table2").Select("ID").Where("col1 = ?", 'val1')

我想执行如下子查询:

 SELECT id, col1, col2 FROM table1 WHERE col1='val1' and col2 NOT IN (
  SELECT ID FROM table2 WHERE col1='val1' and col3 = 'val3')
如何使用来执行它?

可以执行查询

编写标准查询,然后调用
.SubQuery()
方法:

sub := db.Table("table2").Select("ID").Where("col1 = ?", 'val1').SubQuery()
您可以将其作为参数放置在
.Where()
方法中

err := db.Table("table1").Where("col2 NOT IN ?", sub).Find(&table1Type).Error
//handle the error
可以进行查询

编写标准查询,然后调用
.SubQuery()
方法:

sub := db.Table("table2").Select("ID").Where("col1 = ?", 'val1').SubQuery()
您可以将其作为参数放置在
.Where()
方法中

err := db.Table("table1").Where("col2 NOT IN ?", sub).Find(&table1Type).Error
//handle the error

谢谢你的回复。在db连接对象上找不到SubQuery()方法。我把这个和围棋一起用。谢谢你的回复。在db连接对象上找不到SubQuery()方法。我把这个和围棋一起用。