如何使用GORM对不同名称的字段引用执行连接查询像这样:
SELECT * FROM tickets JOIN ticket_details ON tickets.ticket_id = ticket_details.ticket_id JOIN users ON tickets.create_user = users.user_id JOIN employees ON users.employee_id = employees.employee_id
门票。create_user = users.user_id没有foreignkey
您可以使用" join ">
https://gorm.io/docs/query.html连接
您提供的查询应该使用这种join来完成:
db.Model(...).Joins("JOIN ticket_details ON tickets.ticket_id = ticket_details.ticket_id").Joins("JOIN users ON tickets.create_user = users.user_id").Joins("JOIN employees ON users.employee_id = employees.employee_id")...
如果你想在你的模型中设置门票和用户之间的关系
我假设关系是User "has many"票
,模型User/Ticket的ID为int64
则可以通过设置格式"foreignKey"one_answers"references">
https://gorm.io/docs/has_many.html Override-Foreign-Key
https://gorm.io/docs/has_many.html Override-References
type Ticket struct {
TicketId int64 `gorm:"primaryKey"`
CreateUser int64
}
type User struct {
UserId int64 `gorm:"primaryKey"`
Tickets []Ticket `gorm:"foreignKey:CreateUser;references:UserId"`
}
,那么你应该能够像这样查询用户的票
var users []User
db.Joins("Tickets").Find(&users)