Php 计算通过id连接的第二个表中的所有行,并在第一个表的右行添加值

Php 计算通过id连接的第二个表中的所有行,并在第一个表的右行添加值,php,mysql,Php,Mysql,我有两个表,在一个表中保存入口。例如,我提供智能手机的条目。每个条目上都可能有更多问题。例如,为客户和供应商聊天。 此问题保存在第二个表中。每个问题都将获得“条目id”。 现在,我想获取所有条目,并将每个条目的所有问题作为单个值进行计数。 例如: 我简化了sql,我想我真的很接近: SELECT e.id, e.uid, e.tmstmp, e.title, e.desc, questioncount FROM entrys e INNER JOIN (

我有两个表,在一个表中保存入口。例如,我提供智能手机的条目。

每个条目上都可能有更多问题。例如,为客户和供应商聊天。
此问题保存在第二个表中。每个问题都将获得“条目id”。

现在,我想获取所有条目,并将每个条目的所有问题作为单个值进行计数。
例如:

我简化了sql,我想我真的很接近:

SELECT 
    e.id, e.uid, e.tmstmp, e.title, e.desc, questioncount
FROM 
    entrys e 

INNER JOIN
    (
        SELECT eid, COUNT(id) as questioncount
        FROM question 
        WHERE eid = e.id
) q
->“where子句”中的未知列“e.id”

我试着用“on”这样的词把它们连在一起:

ON q.eid = e.id

但是,并非所有的行都被选中,并且无论eid=e.id,questioncount都会从所有问题中获取值。

选择计数作为子查询

SELECT e.id, e.uid, e.tmstmp, e.title, e.desc,
(SELECT COUNT(q.id) FROM question q WHERE q.eid = e.id) AS questioncount
FROM entrys e

使用left join,这样无论每个条目是否有问题,它都会返回条目中的所有行

SELECT 
    e.id, e.uid, e.tmstmp, e.title, e.desc, COUNT(q.id) questioncount
FROM 
    entrys e 
LEFT JOIN question q on  e.id = q.eid
GROUP BY e.id

使用子查询,或将group by与join一起使用。
SELECT 
    e.id, e.uid, e.tmstmp, e.title, e.desc, COUNT(q.id) questioncount
FROM 
    entrys e 
LEFT JOIN question q on  e.id = q.eid
GROUP BY e.id