获取子表中的记录数 [英] Get number of records in child table

查看:30
本文介绍了获取子表中的记录数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要获取子表中的记录数.

I need to get number of record in child table.

父表

+-------------+------------+  
| Id          | Name       |  
+-------------+------------+  
| 1           | a          |  
+-------------+------------+    
| 2           | b          |    
+-------------+------------+ 
| 3           | c          | 
+-------------+------------+ 

子表:

+-------------+------------+  
| Id          | Code       |  
+-------------+------------+
| 1           | d1         |  
+-------------+------------+ 
| 1           | d2         | 
+-------------+------------+    
| 1           | d3         |  
+-------------+------------+ 
| 1           | d1         | 
+-------------+------------+    
| 2           | d2         |  
+-------------+------------+ 
| 2           | d3         | 
+-------------+------------+ 
| 3           | d1         |  
+-------------+------------+ 
| 3           | d2         | 
+-------+-----+------------+   

结果应该是:

+-------------+------------+------------+ 
| Id          | Name       | NumOfRec   |  
+-------------+------------+------------+ 
| 1           | a          |        4   |
+-------------+------------+------------+  
| 2           | b          |        2   |
+-------------+------------+------------+  
| 3           | c          |        2   |
+-------------+------------+ -----------+

我已经尝试过使用 COUNT,但是我只得到了一个 ID 的记录数,而没有得到其他 ID 的记录数.

I've tried with COUNT but then I get only number of records for one id but not for other ID's.

推荐答案

应该这样做:

SELECT ID, COUNT(ID) AS RECCOUNT FROM CHILD_TABLE
GROUP BY ID;

要根据 PARENT ID 获取记录,您可以这样做,

To get the records based on PARENT ID, you can do,

SELECT P.ID, P.NAME, COUNT(C.ID) FROM
PARENT P LEFT OUTER JOIN CHILD C
ON P.ID = C.ID
GROUP BY P.ID, P.NAME;

SQL FIDDLE HERE:http://sqlfiddle.com/#!8/08d58/3

对于没有对应子记录的父 ID,左外连接导致记录数为 0.

Left outer join results in number of records as 0 for parent ids not having corresponding child records.

这篇关于获取子表中的记录数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆