TypeORM 无关联关系的mysql多表连接查询

TypeORM 无关联关系的mysql多表连接查询,第1张

  TypeORM 官方给的文档中,多表查询时使用的是通过实体关系进行leftjoin查询,我们知道TypeORM实体关系实际上是通过mysql的外键实现的。在实际开发中,外键因为有诸多限制不被推荐使用,大部分的都是无关系的表连接。经过几天的查找资料和摸索,找到了两种查询的方法,总结一下,如果大家有其他好的方法,欢迎留言讨论。

  这种方法使用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表的值写错了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7284138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存