SQLselectステートメントのフィールドとしてカウントを取得するための最良の方法
私は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のレコードがあります。どちらがより良いアプローチか知りたかったのですか?または、より高速なクエリを提案できます