Golang Gorm三表关联查询:如何高效获取用户信息?

golang gorm三表关联查询:如何高效获取用户信息?

Golang Gorm三表关联查询:高效获取用户信息详解

在使用Golang的Gorm库进行数据库操作时,多表关联查询是常见需求。本文将详细讲解如何使用Gorm在record、recorduser和user三个表之间高效关联查询,最终获取user.username信息。

假设我们有三个结构体:record、recorduser和user,它们之间存在一对多和一对一关系:record一对多关联recorduser,recorduser一对一关联user。我们的目标是查询一条record记录,同时获取关联的user的username。

简单的Gorm preload方法只能进行一级关联查询,无法直接获取user.username。为了提高效率,避免Gorm嵌套关联查询带来的性能问题,直接使用自定义SQL语句是更有效的方法。

立即学习“go语言免费学习笔记(深入)”;

我们可以利用Gorm的Raw方法执行自定义SQL查询:

var model Recorddb.Raw("SELECT r.*, ru.*, u.UserName FROM records r JOIN record_users ru ON r.id = ru.RecordId JOIN users u ON ru.UserId = u.id WHERE r.id = ?", 1).Scan(&model)

登录后复制

本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。

如若转载请注明出处:http://www.down96.com/tutorials/3698.html

热心网友热心网友
上一篇 2025-04-11 14:48
下一篇 2025-04-11 14:48

相关推荐

本站[软件指南]所有内容来自互联网投稿或AI智能生成,并不代表软件指南的立场。