首页 > 其他分享 >gorm 中left join的使用

gorm 中left join的使用

时间:2024-03-08 18:33:05浏览次数:22  
标签:join business no state gorm json agv id left

使用mysql语句执行时可以执行成功,但是使用go语言编程保存到struct中时出现问题。

代码如下:

sflog.Debug("QueryByTaskId ", id)
    type Data struct {         TaskId          int64   `json:"taskId"`         VehicleName     string  `json:"vehicleName"`         VehicleElec     float64 `json:"vehicleElec"`         VehicleNumber   string  `json:"vehicleNumber"`         VehicleLocation int64   `json:"vehicleLocation"`         VehicleStatus   int     `json:"vehicleStatus"`     }     var datas []Data
    joinQuery := mu.DB.Table("job j").Select("j.business_id AS taskId, a.name AS vehicleName, s.battery AS vehicleElec, j.agv_serial_no AS vehicleNumber, s.node_id AS vehicleLocation, s.state AS vehicleStatus").         Joins("LEFT join agv a on a.serial_no = j.agv_serial_no").         Joins("LEFT JOIN agv_state s on s.business_id = a.agv_state_id").         Where("j.business_id=?", id)
    if err = joinQuery.Debug().Find(&datas).Error; err != nil {         sflog.Errorf("query job table err:%v ", err.Error())     }     sflog.Debug("datas: ", datas)   执行语句后datas是null的。后面改为这个语句,执行ok       joinQuery := mu.DB.Table("job j").Select("j.business_id AS task_id, a.name AS vehicle_name, s.battery AS vehicle_elec, j.agv_serial_no AS vehicle_number, s.node_id AS vehicle_location, s.state AS vehicle_status").         Joins("LEFT join agv a on a.serial_no = j.agv_serial_no").         Joins("LEFT JOIN agv_state s on s.business_id = a.agv_state_id").         Where("j.business_id=?", id)  

标签:join,business,no,state,gorm,json,agv,id,left
From: https://www.cnblogs.com/rohens-hbg/p/18061627

相关文章

  • Rails中的includes和joins的区别与用法
    includes和joins的不同当includes和joins的时候最重要的概念就是他们有他们的典型用例。includes使用贪婪加载(eagerloading)而joins使用懒加载(lazyloading),两者都非常有用,但是也都很容易被滥用导致程序性能降低或过度使用。如果我们看一眼rubyonrails文档,描述includes最重......
  • MySQL JOIN 的执行过程
    对于MySQL的JOIN,不知道大家有没有去想过他的执行流程,亦或有没有怀疑过自己的理解;如果大家不知道怎么检验,可以试着回答如下的问题。 驱动表的选择:MySQL会如何选择驱动表,按从左至右的顺序选择第一个? 多表连接的顺序 假设我们有3张表:A、B、C,和如下SQL --伪SQL,......
  • GORM many2many、many2one、one2many关联表的操作
    一、简单介绍:当我们设计数据库时,经常会遇到实体之间的关系。这些关系通常可以分为三种类型:many-to-many(多对多)、many-to-one(多对一)和one-to-many(一对多)。Many-to-Many(多对多):意义:多对多关系表示一个实体可以与多个其他实体相关联,同时这些实体也可以与多个该实体相关......
  • Gorm简单入门
    Gorm简单入门介绍简单的数据库连接和CRUD内容0.基本配置goget-ugorm.io/gormgoget-ugorm.io/driver/mysql1.连接数据库packagemainimport( "time" "gorm.io/driver/mysql" "gorm.io/gorm")typeUserstruct{ IDuint Namestring......
  • Java 切入点 JoinPoint的使用,用于拦截方法,与自定义注解
    这里的代码案例是外卖系统中,用于统一修改新增和更新内容中的更新时间与更新人内容,根据具体情况,在使用时进行自定义修改就行了第一部分是annotation的,因为是为了自动填充数据准备,所以创建annotation包后,在其中创建了AutoFill的注解类型/***自定义注解,用于标识某个方法需要用......
  • 外联结(OUTER JOIN)的主表
    1.什么是联结——JOIN简单来说,就是将其他表中的列添加到特定的表中,即进行“添加列”的运算,本质是对主表字段的扩展,主表集合不变,一对多的情况下,主表列会增加。联结图示该操作通常用于无法从一张表中获取期望数据(列)的情况。在实际工作中,期望得到的数据往往会分散在不同的表之......
  • 数仓的等待视图中,为什么会有Hashjoin-nestloop
    本文分享自华为云社区《GaussDB(DWS)等待视图之Hashjoin-nestloop》,作者:Arrow0lf。1.业务场景众所周知,GaussDB(DWS)中有3种常见的join方式:HashJon/MergeJoin/NestLoop但在有一些场景中,等待视图中等待状态会显示为:HashJoin-nestloop,如下图所示。这种表示什么含义?2.基本原理......
  • 【Gorm 错误收集】Error 1215 (HY000): Cannot add foreign key constraint
    错误:Error1215(HY000):Cannotaddforeignkeyconstraint相关mysql错误:Error1215(HY000):Cannotaddforeignkeyconstraint。场景:为了方便测试人员测试产品的功能以及后续报告,PM设计了一个测试用例的功能,用于记录需要测试的产品的操作步骤。针对这个功能,我建立......
  • Codeforces 1025F Disjoint Triangles
    结论:如果两个三角形不相交,那么一定存在两条内公切线。于是可以考虑枚举这条内公切线的端点\(x,y\)。那么一个三角形的两个端点就会在\(x\toy\)这条线的同一侧,另外一个三角形的两个端点会在这条线的另一侧。同时这条线的一侧与其配对的端点可能是\(x\)也可能是\(y\)。......
  • WPF PART_LeftThumb_DragDelta事件
    PART_LeftThumb_DragDelta事件是拖拽过程中实时触发的。当用户按住Thumb控件并拖动时,该事件会在每次鼠标或手指移动时实时触发,而不是按照时间间隔定时触发。这使得应用程序可以实时响应用户的操作,更新UI或执行其他操作。 DragDeltaEventArgs.HorizontalChange是指拖动操作期间......