我以Go Lang和Echo框架为基础使用Postgres,并以此为基础使用Gorm构建数据库查询。
这是我的个人资料模型,
type Profile struct {
gorm.Model
InvoiceCount uint `gorm:"-"`
CompanyName string `gorm:"size:255"`
CompanyNumber string `gorm:"size:10"`
CompanyVatNumber string `gorm:"size:10"`
DateAdded time.Time `gorm:"type:date"`
PrimaryEmail string `gorm:"size:255"`
IsActive bool
Invoice []*Invoice `gorm:"foreignkey:profile_fk" json:",omitempty"`
Address []*Address `gorm:"foreignkey:profile_fk" json:",omitempty"`
}
这被链接到我的Invoice模型中,我正在尝试对预载进行计数。我添加了InvoiceCount
uint,可以将计数添加到该模型中。
这就是我所束缚的,
dbCon().
Preload("Invoice", func(db *gorm.DB) *gorm.DB {
return db.Count(&profile)
}).
Find(&profile).
RecordNotFound()
但是,除了无法正常工作外,它还会返回以下错误:(pq: zero-length delimited identifier at or near """")
。
我正在尝试通过一个简单的查询来执行此操作,但这有问题吗?我是否需要循环浏览所有个人资料并为每个个人资料添加计数?还是使用子选择下拉至原始SQL查询?
谢谢
答案 0 :(得分:0)
我已经构建了此Raw SQL查询,
dbConn().
Raw("SELECT p.*, count(i.id) as invoice_count FROM profiles p left join invoices i on i.profile_fk = p.id group by p.id").
Scan(&result)