[英]Count and display multiple mysql row values in different columns for PHP echo
[英]Fetch count of values as different columns for different values in MySql
我在MySQL表中的數據具有以下格式。 我想獲取字符串值的計數作為MySql查詢中的不同列,這意味着如果該列具有3個不同的值,則將從數據庫中獲取數據時將添加3個列以得到結果。
桌子:
task table id | task | ----|-----------| 1 | TASK1 | ----|-----------| 2 | TASK2 | ----|-----------| 3 | TASK3 | ----|-----------| priority table id | task_id | priority | ----|-----------|-----------| 1 | 1 | Low | ----|-----------|-----------| 2 | 1 | Medium | ----|-----------|-----------| 3 | 1 | High | ----|-----------|-----------| 4 | 1 | High | ----|-----------|-----------| 5 | 1 | Low | ----|-----------|-----------| 6 | 1 | Medium | ----|-----------|-----------| 7 | 1 | High | . . N
預期結果 :
task |low_priority | medium_priority | high_priority -----|--------------|-----------------|-------------- TASK1| 2 | 2 | 3 -----|--------------|-----------------|--------------
現在,我正在嘗試以下查詢,但未找到預期結果。
SELECT task, (CASE WHEN priority = 'low' THEN 1 ELSe 0 END ) AS 'low_priority',(CASE WHEN priority = 'medium' THEN 1 ELSE 0 END) AS 'medium_priority',(CASE WHEN priority = 'high' THEN 1 ELSE 0 END ) AS 'high_priority' FROM task LEFT JOIN priority ON priority.task_id = task.id GROUP BY task.id
你可以這樣
SELECT task, SUM(CASE WHEN priority = 'Low' THEN 1 ELSE 0 END ) AS 'low_priority',
SUM(CASE WHEN priority = 'Medium' THEN 1 ELSE 0 END) AS 'medium_priority',
SUM(CASE WHEN priority = 'High' THEN 1 ELSE 0 END ) AS 'high_priority'
FROM task
LEFT JOIN priority ON priority.task_id = task.id GROUP BY task.id
HAVING SUM(CASE WHEN priority = 'Low' THEN 1 ELSE 0 END ) > 0 OR
SUM(CASE WHEN priority = 'Medium' THEN 1 ELSE 0 END ) > 0 OR
SUM(CASE WHEN priority = 'High' THEN 1 ELSE 0 END )
結果將是
+-------+--------------+-----------------+---------------+ | task | low_priority | medium_priority | high_priority | +-------+--------------+-----------------+---------------+ | TASK1 | 2 | 2 | 3 | +-------+--------------+-----------------+---------------+ 1 row in set (0.00 sec)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.