簡體   English   中英

用錯誤查詢SELECT查詢結果計算不同值

[英]Count distinct values with SELECT query results with error

我有一個奇怪的情況。 我需要從表名稱中選擇所有數據,並從其他表中選擇不同的值。

這是我需要獲取不同值的數據庫的數據庫方案:

在此處輸入圖片說明

當我在不使用INNER JOIN的情況下運行兩個查詢時,它們都將運行而沒有錯誤,但是當我使用INNER JOIN時卻出現了錯誤

這是我使用的查詢:

SELECT * FROM `todo`
INNER JOIN 

SELECT `task`.`status`,COUNT(*) as count FROM `task`
ON `todo`.`id`=`task`.`id_list` WHERE `todo`.`user_id` = 43  

如您所見,我需要從其他表中獲取狀態列的總數。 可以使用一個查詢完成,還是需要運行兩個查詢來獲取數據...

您需要將連接括起來

SELECT td.*, t.* 
FROM `todo` td
JOIN
(   SELECT `status`, SUM(status=0) as status_0, SUM(status=1) as status_1 , id_list
    FROM `task`
    GROUP BY id_list 
) t ON td.id= t.id_list
WHERE td.user_id = 43

您可以在一個查詢中執行此操作。 即使沒有子查詢:

SELECT ta.status, COUNT(*) as count
FROM todo t INNER JOIN 
     task ta
     ON t.id = ta.id_list
WHERE t.user_id = 43  
GROUP BY ta.status;

編輯:

如果以上內容滿足您的要求,則您可能需要:

SELECT t.*, ta.status, taa.cnt
FROM todo t INNER JOIN 
     task ta
     ON t.id = ta.id_list INNER JOIN
     (SELECT count(*) as cnt, ta.status
      FROM task ta
      GROUP BY ta.status
     ) taa
     on ta.status = taa.status
WHERE t.user_id = 43  ;

您似乎想要status級別的摘要,僅在task 但是您想要行級的信息todo

暫無
暫無

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

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