【问题标题】:MYSQL SELECT including COUNT within the same table with reference to specific columnMYSQL SELECT 包括 COUNT 在同一个表中引用特定列
【发布时间】:2018-03-26 17:52:41
【问题描述】:

所以,我使用简单的SELECT 语句从一个表中获取数据,其中包含SELECT COUNT

SELECT *, 
    (SELECT COUNT(`message_id`) 
    FROM `user_message` 
    WHERE `status_to` = 0
    ) AS `unread`  
FROM `user_message`

在这里,unread 计算来自其他用户的未读消息。但这还不够。我想要的是在同一个表中将SELECT COUNT 引用到特定列user_id

SELECT *, 
    (SELECT COUNT(`message_id`) 
    FROM `user_message` 
    WHERE `status_to` = 0 AND `user_message`.`user_id` = `user_message`.`user_id`
    ) AS `unread` 
FROM `user_message`

.. 如果这有意义的话。我的第二个语句忽略了这部分:AND user_message.user_id = user_message.user_id,并为每个 user_id 给出了相同的结果。

我错过了什么?

【问题讨论】:

    标签: php mysql select count


    【解决方案1】:

    您需要为您的表提供不同的别名以获取相关计数

    SELECT *, (
        SELECT COUNT(`message_id`) 
        FROM `user_message` b 
        WHERE `status_to` = 0 
        AND `a`.`user_id` = `b`.`user_id`
        ) AS `unread`
    FROM `user_message` a
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-22
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多