所以我有兩個表:水平的數據表中的分配
project.sql
projectNo| title |
---------+-------+
17020002 | test |
17020003 | test2 |
process.sql
projectNo| process | studio |
---------+---------+---------+
17020002 | ANM | STELLAR |
17020002 | BLD | |
17020003 | ANM KEY | APEX |
17020003 | BLD | PALETTE |
我想要做的就是創建MySQL查詢,這將水平顯示工作室的名稱作爲表的標題,並把「X」,其中它匹配:
所以我想表如下所示:
| title | APEX | BASECAMP | CANVAS | HORIZON | LAUNCHPAD | NEBULA | ORBIT | PALETTE | SANDBOX | STELLAR | THE CLIMB | TOONIGAMI | TREEHOUSE |
+---------------+------+----------+--------+---------+-----------+--------+-------+---------+---------+---------+-----------+-----------+-----------+
| Project test | | | | | | | | | | | | | |
| ANM | | | | | | | | | | x | | | |
| BLD | | | | | | | | | | | | | |
| Project test2 | | | | | | | | | | | | | |
| ANM KEY | x | | | | | | | | | | | | |
| BLD | | | | | | | | x | | | | | |
我試圖使用的查詢:
SELECT proc.projectNo, proc.title,
max(case when studio = "APEX" then "x" else "" end) as APEX,
max(case when studio = "BASECAMP" then "x" else "" end) as BASECAMP,
max(case when studio = "CANVAS" then "x" else "" end) as CANVAS,
max(case when studio = "HORIZON" then "x" else "" end) as HORIZON,
max(case when studio = "LAUNCHPAD" then "x" else "" end) as LAUNCHPAD,
max(case when studio = "NEBULA" then "x" else "" end) as NEBULA,
max(case when studio = "ORBIT" then "x" else "" end) as ORBIT,
max(case when studio = "PALETTE" then "x" else "" end) as PALETTE,
max(case when studio = "SANDBOX" then "x" else "" end) as SANDBOX,
max(case when studio = "STELLAR" then "x" else "" end) as STELLAR,
max(case when studio = "THE CLIMB" then "x" else "" end) as THECLIMB,
max(case when studio = "TOONIGAMI" then "x" else "" end) as TOONIGAMI,
max(case when studio = "TREEHOUSE" then "x" else "" end) as TREEHOUSE
FROM process p1
LEFT JOIN
(
SELECT projectNo, title
FROM
(
SELECT projectNo, CONCAT('Project ', title) as title, 0 AS a FROM project
UNION ALL
SELECT projectNo, process, 1 AS a FROM process
) t
ORDER BY projectNo, a, title
)proc
ON p1.projectNo = proc.projectNo
GROUP BY proc.projectNO, proc.title
,並通過使用此查詢,我得到:
| title | APEX | BASECAMP | CANVAS | HORIZON | LAUNCHPAD | NEBULA | ORBIT | PALETTE | SANDBOX | STELLAR | THE CLIMB | TOONIGAMI | TREEHOUSE |
+---------------+------+----------+--------+---------+-----------+--------+-------+---------+---------+---------+-----------+-----------+-----------+
| ANM | | | | | | | | | | x | | | |
| BLD | | | | | | | | | | x | | | |
| Project test | | | | | | | | | | x | | | |
| ANM KEY | x | | | | | | | x | | | | | |
| BLD | x | | | | | | | x | | | | | |
| Project test2 | x | | | | | | | x | | | | | |
我如何能實現我想要的結果呢?感謝您的幫助
認真考慮處理某些數據顯示的問題應用程序代碼,例如有點PHP – Strawberry
@Strawberry我運行這個查詢phpmyadmin sql命令行,不使用它在php代碼 –
很酷。所以解決。所有你需要的是一個很好的有序數組。一切都可以(並在我看來,應該)在PHP中完成......哦,你也可能想要一個工作室 – Strawberry