内连接外连接子查询效率比较,请高手指点
大家好,我想问一个查询效率的问题,关于内联外联和子查询那个效率高
数据库
A表
id name
1 小白
2 小红
3 小黑
B表
id pid type
1 1 S
2 1 S
3 1 L
4 2 L
5 2 L
6 3 S
其中 Pid 是外键
现在要查询小白的每个类型多少个
SELECT Name,
(SELECT count(*) from B where B.pid=A.id and B.type = 'S') as 总S,
(SELECT count(*) from B where B.pid=A.id and B.type = 'L') as 总L
from A where A.Name = '小白'
这个是子查询,然后下面用的内连接
SELECT A.[name],
(CASE WHEN B.[type] = 'S' THEN count(B.[type]) end) AS 总S,
(CASE WHEN B.[type] = 'L' THEN count(B.[type]) end) AS 总L
FROM A inner join B on A.id=B.pid WHERE A.[name] = '小白'
GROUP BY A.[name],B.[type]
请问这俩种哪个查询效率高,一般情况下应该用子查询还是内联查询?