我有两张桌子
A和B.
A B
----------------- -----------------
a_pk (int) b_pk (int)
a_name(varchar) a_pk (int)
b_name (varchar)
Run Code Online (Sandbox Code Playgroud)
我可以写一个查询
SELECT a.a_name, b.b_name
FROM a LEFT OUTER JOIN b ON a.a_pk = b.a_pk
Run Code Online (Sandbox Code Playgroud)
这将返回一个表a中所有内容的非独特列表,其表b加入了数据.对于列a,将显示重复项,其中不同的b记录共享共同的a_pk列值.
但我想要做的是从表A列a_name获取一个完整的值列表,并添加一个列,该列是表B的连接值的COUNT.
因此,如果a_pk = 1且a_name = test,并且在表b中有5条记录的a_pk值为1,那么我的结果集将是
a_name b_count
------ -------
test 5
Run Code Online (Sandbox Code Playgroud)
Kun*_*han 10
查询应该是这样的:
SELECT
a.a_name,
(
SELECT Count(b.b_pk)
FROM b
Where b.a_pk = a.a_pk
) as b_count
FROM a
Run Code Online (Sandbox Code Playgroud)