【问题标题】:MySQL Select Queries ExplainMySQL 选择查询解释
【发布时间】:2014-04-11 22:30:29
【问题描述】:

我有一个关于 select mysql 查询的问题。假设我们有 2 张桌子

用户:[ id,用户名] 日志 [id, user_id, action]

我想使用基于 user_id 的表日志计数(id)从表用户中选择所有用户

我尝试执行以下操作:

SELECT t1.*,count(t2.`id`) 
FROM `users` t1
LEFT JOIN `logs` t2 
ON  t1.id = t2.user_id;

但这只会打印日志计数> 0的用户。我想选择所有日志计数的用户。

【问题讨论】:

  • 您只需要添加一个分组。按 t2.user_id 分组

标签: mysql select join


【解决方案1】:
SELECT t1.*,count(t2.`id`) 
FROM `users` t1
LEFT JOIN `logs` t2 
ON  t1.id = t2.user_id
GROUP BY t1.id

【讨论】:

    【解决方案2】:

    试试这个查询:

    SELECT *, (SELECT count(id) FROM `logs` WHERE `logs`.`id`=`id`) scount FROM `users`;
    

    您想要的计数值将位于名为 scount 的字段中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      相关资源
      最近更新 更多