如何在(SQL)中解决此查询?
我有这样的表,其中包含id、名称、Uid,如下所示:如何在(SQL)中解决此查询?,sql,Sql,我有这样的表,其中包含id、名称、Uid,如下所示: -------------- Id Name Uid | 1 Ram 0 | 2 Sham 1 | 3 Cam 1 | 4 Dam 2 | 5 Eam 3 | 6 Fam 4 | 7 Gam 2 ---------------- 这类似于: Ram | ----
--------------
Id Name Uid |
1 Ram 0 |
2 Sham 1 |
3 Cam 1 |
4 Dam 2 |
5 Eam 3 |
6 Fam 4 |
7 Gam 2
----------------
这类似于:
Ram
|
--------------
| |
Sham Cam
| |
--------- ---
| | |
Dam Gam Eam
我想知道有多少工人在特定人员下工作,例如(在Ram下有2人在工作)
就像Ram的id=1一样,我们将签入Uid,所有Uid=1的用户都将在Ram下工作
输出:
------------------------------------------------
Id Name Count(Number of Employee Working) |
1 Ram 2 |
2 Sham 2 |
3 Cam 1 |
4 Dam 0 |
5 Eam 0 |
6 Fam 0 |
7 Gam 0 |
------------------------------------------------
由于您似乎只想知道不深入遍历子树的直接子级的数量,您可以尝试:
SELECT t1.id,
t1.name,
(SELECT count(*)
FROM elbat t2
WHERE t2.uid = t1.id) count
FROM elbat t1;
请告诉我们您使用的是哪种DBMS。谢谢。我可以用另一种方法,比如CTE(公共表表达式)吗