这种方法使用getRawOne获取到sql查询后的原始数据,因为TypeORM会用别名,所以这里用select对字段进行了重命名,这个写法需要对每个需要的字段名进行重命名,否则返回的字段名称会带上表名。
第二种方法使用leftJoinAndMapOne作字段映射,如果一对多可以使用leftJoinAndMapMany。这样就不用挨个对字段重命名,但是可能存在嵌套较深的问题。
以上是常用的两种表连接的方法,每个都有其优缺点,可以根据情况选择使用。两外附上这两种方法的出处:
1、 https://juejin.cn/post/6916483483095449608
2、 https://www.cnblogs.com/zzk96/p/11397223.html
select a.ID,a.TID,a.NAME,b.DATE from (select b.ID,b.TID,b.DATE from B order by ID desc) as b left join A as a on a.TID=b.TID group by b.TID
而且你的表述有问题
1、等于说是 A表全部显示 且显示B 当中跟他关联的TID 最大的 那条记录值
这里应该是:当中跟他关联的ID 最大的
2、达到的效果也不对,因为B表的值写错了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)