Php 当前行上的MYSQL计数子查询

Php 当前行上的MYSQL计数子查询,php,mysql,sql,count,subquery,Php,Mysql,Sql,Count,Subquery,我在这个问题上遇到了麻烦,希望有人能帮助我 SELECT myTable.id, myTable.subject, myTable.upvotes, myTable.downvotes, (SELECT COUNT(id) FROM myTable WHERE myTable.thread = myTable.id) AS comments_count FROM myTable 基本上我有一个包含帖子和评论的表,评论线

我在这个问题上遇到了麻烦,希望有人能帮助我

  SELECT 
    myTable.id,
    myTable.subject,
    myTable.upvotes,
    myTable.downvotes,
    (SELECT COUNT(id) 
     FROM myTable 
     WHERE myTable.thread = myTable.id) AS comments_count 
  FROM myTable
基本上我有一个包含帖子和评论的表,评论线程与原始帖子的id绑定。在我的查询中,我想显示当前id/行的所有行中有多少个relpie(多少线程=id)


我希望这是有意义的:)

您需要在子查询中使用新别名指定要匹配的表,否则它将匹配同一个表中id为的线程

SELECT 
m.id,
m.subject,
m.upvotes,
m.downvotes,
(SELECT COUNT(id) 
  FROM myTable 
  WHERE myTable.thread = m.id) AS comments_count 
FROM myTable m
或者最好使用
LEFT JOIN

SELECT 
    m.id,
    m.subject,
    m.upvotes,
    m.downvotes,
    COUNT(mm.id) AS comments_count 
FROM myTable m 
  LEFT JOIN  myTable mm ON(mm.thread = m.id)
 GROUP BY m.id

啊,谢谢你!这很有道理。我应该用化名。我也会尝试左连接。再次感谢!!