如何链接两个表

时间:2016-08-26 14:47:15

标签: mysql sql

我有一个带有两列的sql表,其中一个将执行一个父项,另一个将执行一个子项。

请找下表

Id  name    parent
1   Chandan null
2   raju    1
3   anand   1
4   gsfsgs  null
8   gggg    2
9   ffff    2

这里我需要得到以下内容

 Id  name     count
 1   Chandan    2
 2   raju       2
 3   anand      0
 4   gsfsgs     0
 8   gggg       0
 9   ffff       0

这是我正在尝试的事情

select id, name, (select count(*) from table where parentid=id) as count

但我没有得到正确的结果。

3 个答案:

答案 0 :(得分:5)

自我加入

 <meta name="viewport" content="width=device-width, initial-scale=1">

答案 1 :(得分:2)

子查询需要相关,即需要引用外部查询:

left join

但是,{{1}}可能会有更好的表现。

答案 2 :(得分:0)

以下是使用子查询和连接的变体:

SELECT T.id, T.name, IFNULL(sub.cnt,0)
FROM T
LEFT JOIN
(SELECT parent, COUNT(*) AS cnt
FROM T
GROUP BY parent) sub
ON T.id = sub.parent