當我嘗試獲取反饋專案時,我只收到第一列,為什么?
SELECT
u.firstname as "Usuario",
CASE WHEN i.name = 'task 1' THEN v.value END AS "1",
CASE WHEN i.name = 'task 2' THEN v.value END AS "2",
CASE WHEN i.name = 'task 3' THEN v.value END AS "3",
CASE WHEN i.name = 'task 4' THEN v.value END AS "4",
CASE WHEN i.name = 'task 5' THEN v.value END AS "5",
CASE WHEN i.name = 'task 6' THEN v.value END AS "6",
CASE WHEN i.name = 'task 7' THEN v.value END AS "7",
CASE WHEN i.name = 'task 8' THEN v.value END AS "8",
CASE WHEN i.name = 'task 9' THEN v.value END AS "9",
CASE WHEN i.name = 'task 10' THEN v.value END AS "10",
CASE WHEN i.name = 'task 11' THEN v.value END AS "11",
CASE WHEN i.name = 'task 12' THEN v.value END AS "12"
FROM prefix_feedback AS f
JOIN prefix_course AS c ON c.id=f.course
JOIN prefix_feedback_item AS i ON f.id=i.feedback
JOIN prefix_feedback_completed AS fc ON f.id=fc.feedback
LEFT JOIN prefix_feedback_value AS v ON v.completed=fc.id AND v.item=i.id
JOIN prefix_user AS u ON fc.userid=u.id
GROUP BY u.firstname
ORDER BY u.id, i.id, i.name
當我洗掉組時,我得到所有列,但在很多行上
捕獲
uj5u.com熱心網友回復:
firstname 列不是唯一的,按用戶 ID 或用戶名分組
GROUP BY u.id
或者
GROUP BY u.username
此外,CASE 陳述句需要一個 ELSE,否則沒有任何價值。
CASE WHEN i.name = 'task 1' THEN v.value ELSE 0 END AS task1,
GROUP BY 陳述句也用于總和和計數等。所以您可能缺少 SUM 或 MAX ?
SUM(CASE WHEN i.name = 'task 1' THEN v.value ELSE 0 END) AS task1,
或者
MAX(CASE WHEN i.name = 'task 1' THEN v.value ELSE 0 END) AS task1,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402231.html
上一篇:在mysql表中查找父子回圈
下一篇:在json列中查找字串
