不知所以然,先记录一下。
今天写go踩了个坑
mysql操作用了gorm
有两个表a,b
a,b表有几个字段是相同的,比如id,比如num
a表有a结构体,字段映射
type a struct { id uint64 num uint64 }
b表有b结构体,字段映射
type b struct { id uint64 num uint64 }
然后我准备连表查询,先定义一个结构体
type c struct { b a }
然后写语句是a left join b
,出来的结果获取c.a.num
,拿到的是b表的num,获取c.b.num
,拿到的是a表的num
后来改了一下,
type c struct { a b }
获取到正确的内容了
暂时结论:如果select不指定,结构体的顺序需要跟left join的顺序保持一致