以下是我目前正在努力实现的目标。
我有一个用户表,我想加入它本身。
所以我查询所有没有ParentUserId的用户,还需要一个名为ChildrenCount的额外字段,在这里我可以找到ParentUserId=UserId的所有用户的计数。

SELECT p.*, COUNT(*) as ChildrenCount FROM users p
LEFT JOIN users q
on q.userid = p.ParentUserId
WHERE p.ParentUserId = 0 AND p.CategoryId = 2 ORDER BY p.userid DESC LIMIT 10 OFFSET 0

我没有收到任何错误,但查询没有按我的预期工作。我不知道所有相关孩子的数量。
数据库是MYSQL。

最佳答案

如果我理解正确,
可以使用关联查询:

SELECT p.*,
       (SELECT count(*) FROM users s
        WHERE s.parentUserId = p.userid) as ChildrenCount
FROM users p
WHERE p.ParentUserId = 0 AND p.CategoryId = 2
ORDER BY p.userid DESC LIMIT 10 OFFSET 0

关于mysql - 同一张 table 上的INNER JOIN COUNT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37804918/

10-10 10:00