【问题标题】:Count number of records in a subgroup of a MYSQL query that uses a join计算使用连接的 MYSQL 查询的子组中的记录数
【发布时间】:2015-10-07 08:45:12
【问题描述】:

我在一个 MYSQL 查询中访问了两个表。从一张表中,我想要单独的记录。从第二个表中,我想要记录的计数。当我需要它返回几行时,我正在做的查询只返回一行。这是我的代码:

SELECT c.name, c.city, count(z.zones) 
FROM controllers AS c 
INNER JOIN zones AS z ON c.con_id = z.con_id
WHERE c.user_id = 1;

This returns:
Backyard unit, San Francisco, 21

When I need it to return:
Backyard unit, San Francisco, 6
Side yard controller, Marin, 8
Upper backyard, San Mateo, 7

我已经尝试了许多不同的策略来获得我需要的东西,我觉得我已经接近了。好像我在这里遗漏了一些重要的东西。

顺便说一句,我正在使用 PHP 来处理这些结果。提前感谢您的帮助。我喜欢这个论坛。我在这里找到了很多答案。但这一次我总是不够用。

萝莉

【问题讨论】:

标签: php mysql


【解决方案1】:

如果你也可以按 c.name,c.city 分组

 SELECT c.name, c.city, count(z.zones) 
    FROM controllers AS c 
    INNER JOIN zones AS z ON c.con_id = z.con_id
    group by c.name

【讨论】:

  • 是的!这做到了。谢谢你,@钱德兰。这正是我需要的轻推。按照其他响应者的建议,我确实从阅读文档中学到了很多东西。但我还没有找到确切的解决方案。作为旁注,我发现使用“LEFT OUTER JOIN”而不是“INNER JOIN”也可以让我拾取为空的行。我真的很想要这个。谢谢大家的帮助。我真的很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
相关资源
最近更新 更多