-1

也许这是一个愚蠢的问题,但这是我在 mysql 环境中的第一步......

我有一张这样的桌子

Id|   Name|   Objects|      Class|
1      A         5            1
2      B         10           1
3      C         21           1
4      D         6            1
5      A         10           2
6      B         18           2
7      C         7            2
8      E         65           2

I would like to have a table in php like this:

|Id|    |Name|   |Objects when Class1|   |Objects when Class2|
  1      A              5                               10
  2      B              10                              18
  3      C              21                              7
  4      D              6                               0

等等....

我的问题是,在列名称中,我有一些名称相同的元素,但在考虑不同的类时具有不同数量的对象。

那么,Mysql 中的查询是为了在同一行上获取来自同一列的不同值,但当有多个类时可能会有所不同?我希望它很清楚,提前谢谢!

4

1 回答 1

0

尝试这个

SELECT Id,Name,`Objects when Class1`,`Objects when Class2`
FROM (
SELECT Id , Name , 
IFNULL( max(CASE WHEN class = 1 THEN objects END ),0) AS `Objects when Class1` ,
IFNULL( max(CASE WHEN class = 2 THEN objects END ),0) AS `Objects when Class2`
FROM table1
GROUP BY name
   )t

在这里演示

于 2013-07-10T10:15:36.810 回答