简单MYSQL查询问题

简单MYSQL查询问题,mysql,join,Mysql,Join,我认为我做得对,但是我的查询只返回一行,我有4行,其中t.cat_id=1。有什么想法吗 编辑** 样本数据 现在我只得到一个结果: SELECT t.thread_id, t.subject, u.username, COUNT(p.post_id) - 1 AS responses, MAX(DATE_FORMAT(p.posted_on, '%e-%b-%y %l:%i %p')) AS last, MIN(DATE_FORMAT(p.posted_on

我认为我做得对,但是我的查询只返回一行,我有4行,其中t.cat_id=1。有什么想法吗

编辑** 样本数据

现在我只得到一个结果:

    SELECT t.thread_id, t.subject, u.username,
    COUNT(p.post_id) - 1 AS responses, 
    MAX(DATE_FORMAT(p.posted_on, '%e-%b-%y %l:%i %p')) AS last,
    MIN(DATE_FORMAT(p.posted_on, '%e-%b-%y %l:%i %p')) AS first
    FROM threads AS t
    INNER JOIN posts AS p USING (thread_id)
    INNER JOIN users AS u ON t.user_id = u.user_id
    WHERE t.cat_id = 1
    GROUP BY (p.thread_id) ORDER BY last DESC
我希望得到类似于:

1  THREAD1  USER1  8  17-Apr-11 6:22 AM  17-Apr-11 3:58 AM

其中一个联接表中可能没有对应的行:

1  THREAD1  USER1  8  17-Apr-11 6:22 AM  17-Apr-11 3:58 AM
2  THREAD2  USER1  8  17-Apr-11 6:22 AM  17-Apr-11 3:58 AM
3  THREAD3  USER1  8  17-Apr-11 6:22 AM  17-Apr-11 3:58 AM

另一种可能性(与第一种可能性并不相互排斥)是分组子句折叠行。

您选择了t.thread\u id,但您按p.thread\u id分组

分组方式
更改为

INNER JOIN posts AS p USING (thread_id)
INNER JOIN users AS u ON t.user_id = u.user_id

你能发布示例数据、预期结果和实际结果吗?也许所有4行都有相同的p.thread\u id,你可以在上面做一个group by添加示例数据:)我希望这能有所帮助。谢谢,我昨晚不明白,但我发现我们需要的是一个
左连接
GROUP BY (t.thread_id) ORDER BY last DESC  
          ^