在 Sql select 语句中获取 Count 作为字段的最佳方法
我有 2 张桌子:人员和订单
人
Id Name Age
1 name1 1
2 name2 2
命令
Id Amount PersonId
1 30 1
2 40 2
3 30 2
4 40 2
5 30 1
6 40 2
7 30 1
8 40 2
我想要用户详细信息以及订单总数,因此为此我有 2 个解决方案:
1. select p.Name,p.Age,(select count(1) form orders o where o.personId= p.Id as cntVal
from Person p
2. select p.Name,p.Age,cntVal
from Person p
inner join (select personId,count(1) as cntVal from orders o group by PersonId) cnt
on cnt.personId=p.Id
我们在 Person 表中有大约 200K 条记录,在 Order 表中有 15K 条记录。我想知道哪种方法更好?或者你可以建议我一个更快的查询