簡體   English   中英

MYSQL SELECT 在同一個表中包含 COUNT 並參考特定列

[英]MYSQL SELECT including COUNT within the same table with reference to specific column

因此,我使用包含SELECT COUNT的簡單SELECT語句從一個表中獲取數據。

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 提供相同的結果。

我錯過了什么??

您需要為表提供不同的別名以獲取相關計數

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM