Php 使用嵌套格式对Mysql查询进行分组

Php 使用嵌套格式对Mysql查询进行分组,php,mysql,html-table,cross-reference,Php,Mysql,Html Table,Cross Reference,我已经搜索了旧线程,但还没有找到解决以下问题的方法:是否可以在不使用嵌套查询的情况下对mysql结果进行分组和排列 请看下面的样品 我有: 1月,地点美国,项目DDD 1月,地点英国,项目EEE 一月,地点美国,项目LLL 2月,地点阿联酋,项目EEE 2月,地点美国,项目DDD 2月,地点英国,项目MMM 3月,地点美国,计划FFF 3月,地点阿联酋,项目FFF 3月,地点英国,计划FFF 我希望它们显示如下: column1 column2 column3 line1 34

我已经搜索了旧线程,但还没有找到解决以下问题的方法:是否可以在不使用嵌套查询的情况下对mysql结果进行分组和排列

请看下面的样品

我有:

1月,地点美国,项目DDD
1月,地点英国,项目EEE
一月,地点美国,项目LLL
2月,地点阿联酋,项目EEE
2月,地点美国,项目DDD
2月,地点英国,项目MMM
3月,地点美国,计划FFF
3月,地点阿联酋,项目FFF
3月,地点英国,计划FFF
我希望它们显示如下:

    column1 column2 column3
line1   34              
line2   34              
line3           34  
line5       34          
    column1 column2 column3 
line1   34      34
                34      34
                34        

line2   34
        34      34      34              
line3           34      
line5       34          
+---------++---------++---------+
|一月|二月|三月|
+---------------+---------++---------++---------+
|地点美国| | | | ||
+---------------+---------++---------++---------+
|| DDD | | DDD | FFF|
+---------------+---------++---------++---------+
|| EEE | | | ||
+---------------+---------++---------++---------+
|| LLL | | | ||
+---------------+---------++---------++---------+
|地点:英国| | | | ||
+---------------+---------++---------++---------+
|| EEE | MMM | FFF|
+---------------+---------++---------++---------+
|地点:阿联酋| | | | ||
+---------------+---------++---------++---------+
|| | EEE | FFF|
+---------------+---------++---------++---------+
我已尝试对查询进行分组,但无法将其呈现到HTML表中

SELECT 
    event.`event_id`,
    event.`event_program_id`,
    event.`event_month`, 
    event.`event_location_id`,
    location.`location_name`,
    program.`program_name`,
    program.`program_shortname`
FROM 
    `event`
LEFT JOIN
    `location`
ON
    event.`event_location_id` = location.`location_id`
LEFT JOIN
    `program`
ON
    event.`event_program_id` = program.`program_id`;
现在它的列表如下:

    column1 column2 column3
line1   34              
line2   34              
line3           34  
line5       34          
    column1 column2 column3 
line1   34      34
                34      34
                34        

line2   34
        34      34      34              
line3           34      
line5       34          
我想要的是这样的:

    column1 column2 column3
line1   34              
line2   34              
line3           34  
line5       34          
    column1 column2 column3 
line1   34      34
                34      34
                34        

line2   34
        34      34      34              
line3           34      
line5       34          

如果预期结果中有预定义的列数,比如一年中的月份,那么可以对每个列执行一些内部查询来实现这一点

我对基于SQL的报表有过一些经验,这些报表使用了这样的子查询,最终,这个解决方案以前是一个很难管理的问题:)今天,我只是读取数据,存储在内存中的矩阵中,最后根据矩阵生成结果,以后更容易更改

干杯

下面是一个PHP示例


这里有另一个解决问题的方法


使用html作为输出的其他参考



一些例子可以帮助我更好地理解它;)添加示例;)玩得高兴在本例中,我只添加了1个级别,但您可以通过向$data数组添加更多维度来添加所需的级别。这不是一个示例,我相信这是一个完美的解决方案;)。现在它只列出数组中的一行,我们如何一次列出整行?添加一个html示例,现在使用css:D进行格式设置