我试图从一个php脚本构建一组数组,以便在Google Chart中使用,但我在将其作为堆叠柱形图时遇到了一点麻烦。我一直试图通过在MySQL Workbench中运行命令来使查询工作,但我遇到了一些问题。
我想让脚本做的是列出每个不同的Category,以及一系列字段,这些字段是每个Category的subcats的计数(即使它是0)。
例如,我的表如下所示,其中一些数据显示表中还有更多内容:
| 范畴|子目录|一些数据|
| - -|- -|- -|
| 蓝色|柔和|小行星1123123|
| 蓝色|硬|小行星1241241|
| 蓝色|硬|小行星1123123|
| 红色|冷态|小行星1241241|
| 红色|热|小行星1123123|
| 绿色|锐利|小行星1241241|
| 绿色|无光泽|小行星1123123|
| 黄色|粗糙|小行星1241241|
| 黄色|平滑|小行星1241241|
| 黄色|平滑|小行星1241241|
我正在尝试让查询给予下列数据:
| 类别|柔和|硬|冷态|热|锐利|无光泽|粗糙|平滑|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|
| 蓝色|一个|2个|第0页|第0页|第0页|第0页|第0页|第0页|
| 红色|第0页|第0页|一个|一个|第0页|第0页|第0页|第0页|
| 绿色|第0页|第0页|第0页|第0页|一个|一个|第0页|第0页|
| 黄色|第0页|第0页|第0页|第0页|第0页|第0页|一个|2个|
然后将其格式化为JavaScript格式,使其在数据中显示如下(代码片段如下):
var data = google.visualization.arrayToDataTable([
//list subcategories for chart Legend, append role
['Soft', 'Hard', 'Cold', 'Hot', 'Sharp', 'Dull', 'Rough', 'Smooth', { role: 'annotation' } ],
//formatted arrays for stacked columns
['Red', 1, 2, 0, 0, 0, 0, 0, 0, ''],
['Blue', 0, 0, 1, 1, 0, 0, 0, 0, ''],
['Green', 0, 0, 0, 0, 1, 1, 0, 0, ''],
['Yellow', 0, 0, 0, 0, 0, 0, 1, 2, '']
]);
我一直在测试一些简单的查询,看看我能做到什么程度。到目前为止,得到了以下结果:
| 类别|柔和|硬|冷态|热|锐利|无光泽|粗糙|平滑|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|
| 蓝色|一个|2个|一个|一个|一个|一个|一个|2个|
| 红色|一个|2个|一个|一个|一个|一个|一个|2个|
| 绿色|一个|2个|一个|一个|一个|一个|一个|2个|
| 黄色|一个|2个|一个|一个|一个|一个|一个|2个|
我甚至还没有到PHP的部分。任何帮助将不胜感激。
SELECT DISTINCT Category, (
SELECT COUNT (Subcat)
FROM tbl_table
WHERE Subcat = 'Soft' AND Category = 'Blue'
)
AS 'Soft',
#the above portion repeats for each category/subcat combination that's valid
From tbl_table
我已经尝试了一些其他的查询,但没有他们方便地粘贴在这里。
1条答案
按热度按时间7rtdyuoh1#
这里我使用别名
t1
来引用子查询的表,然后您可以将子查询限制为与主查询相同的类别。