我正在使用 go 版本 go1.10.3 linux/amd64 和 mysql 5.7。
需要使用 GORM 的 docker compose config 运行,或者请提供您的配置。
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mssql"
_ "github.com/jinzhu/gorm/dialects/mysql"
_ "github.com/jinzhu/gorm/dialects/postgres"
_ "github.com/jinzhu/gorm/dialects/sqlite"
)
var db *gorm.DB
func init() {
var err error
db, err = gorm.Open("mysql", "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True")
if err != nil {
panic(err)
}
db.LogMode(true)
}
type Res {
Id int `gorm:"column:id"`
age int `gorm:"column:age"`
}
func main() {
var result []Res
db.Table("A").Select("A.id,A.age").Joins("left join B on A.id=B.id").
Where("A.age=28").
Not("B.id", []{2,3,4,5}).
Scan(&result)
fmt.Printf("%v", result)
}
sql日志是:
select A.id,A.age from A left join B on A.id=B.id where a.age=28 and ABid not in(2,3,4,5)
可以看出,对表A( A.B.id not in ...)追加了not操作。如何将其附加到表 B ( B.id not in ...)?
喵喔喔
三国纷争
相关分类