可以使用
Table()
方法为主表起别名,并在查询语句中使用别名来引用主表。
示例代码如下:
type User struct {
ID uint
Name string
type Order struct {
ID uint
UserID uint
Amount float64
Paid bool
func main() {
db, err := gorm.Open("mysql", "user:password@tcp(localhost:3306)/database")
if err != nil {
panic(err)
defer db.Close()
db.AutoMigrate(&User{}, &Order{})
// 给主表 User 起别名 u
db.Table("users").Select("u.name, o.amount").Joins("JOIN orders o ON u.id = o.user_id").Where("o.paid = ?", true).Scan(&result)
// 使用别名 u 引用主表
var result []struct {
Name string
Amount float64
db.Table("users u").Select("u.name, o.amount").Joins("JOIN orders o ON u.id = o.user_id").Where("o.paid = ?", true).Scan(&result)
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系
service@volcengine.com
进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
社区干货
特惠活动
在Gorm查询中给主表起别名
-优选内容
表管理
成功
查询
表后,仅支持满足以下条件的表进行执行结果的编辑: 单表
查询
。 表
中
需有主键或全列唯一索引。 不是通过表的
别名查询
的执行结果。 说明
查询
视图时,也不支持编辑执行结果。 编辑表结构 不支持在系统... 中选择需要参考的表格。 参考列 在下拉列表中选择需要参考的列,支持多选。 说明 被参考的列需要设置索引。具体操作,请参见上一步骤。 删除时 在下拉列表中选择删除
主表
时,从表的变化,支持以下选项: NoAction:当...
表管理
成功
查询
表后,仅支持满足以下条件的表进行执行结果的编辑: 单表
查询
。 表
中
需有主键或全列唯一索引。 不是通过表的
别名查询
的执行结果。 说明
查询
视图时,也不支持编辑执行结果。 编辑表结构 不支持在系统... 中选择需要参考的表格。 参考列 在下拉列表中选择需要参考的列,支持多选。 说明 被参考的列需要设置索引。具体操作,请参见上一步骤。 删除时 在下拉列表中选择删除
主表
时,从表的变化,支持以下选项: NoAction:当...
在Gorm查询中给主表起别名
-相关内容
特惠活动
白皮书
相关主题
在goormide中运行查询子句时出错,显示错误信息。
在GOPATH/src目录下运行Go程序时出现错误信息'go:go.modfilenotfoundincurrentdirectoryoranyparentdirectory”。
在GOPATH模式下不能使用"path@version"的语法。
在GoPhishDocker中出现'没有找到有效版本”的错误。
在GoPlayground中读取用户输入
在Go切片中找到唯一的元素,该切片是由标准输入填充的
在GORM 2.0中,当父表的外键自增时无法创建HAS MANY关系。
在Gorm(Postgres)中是否有支持自增的自定义类型主键?如果没有,有什么替代方案?
在Gorm(Postgres)中,如何设置自定义类型的自增主键?
在Gorm(Postgres)中,是否支持自定义类型主键自增?如果不支持,有什么替代方案?
最新活动