SQL PHP在具有两个列的组中显示数据库中的值

时间:2015-02-20 10:22:06

标签: php mysql sql group-concat

我有一个名为myTable的表,它看起来像:

restid  |    menu  |    prod   |   price 
__________________________________________
 10     |     m1   |    prod1  |     15   
 10     |     m1   |    prod2  |     21   
 10     |     m2   |    prod3  |     36   
 10     |     m2   |    prod4  |     45  
 10     |     m3   |    prod5  |     12   
 10     |     m3   |    prod6  |     5    

我希望将结果分组并显示如下:

               m1
_________________________________________
      prod1        |        15
      prod2        |        21
_________________________________________
                   m2
_________________________________________
      prod3        |        36
      prod4        |        45
_________________________________________
                   m3
_________________________________________
      prod5        |        12
      prod6        |        5

我已经使用group_concat

对它们进行了分组
SELECT DISTINCT `menu`, GROUP_CONCAT( DISTINCT `prod`
ORDER BY `prod` ) AS prod_list
FROM `myTable` WHERE restid = '10'
GROUP BY `menu`
ORDER BY `menu`

然后使用php正确显示它......

但我希望在结果中加入价格。我一直在寻找答案,但是找到了任何想法。

如果有人能给我一些可以用来实现这一结果的解决方案,我会很高兴。

1 个答案:

答案 0 :(得分:-1)

您只需在选择列表中添加价格列即可。这样的事情: -

SELECT DISTINCT `menu`, GROUP_CONCAT( DISTINCT `prod`
ORDER BY `prod` ) AS prod_list, `price`
FROM `myTable` WHERE restid = '10'
GROUP BY `menu`,`price`
ORDER BY `menu`;