2013-07-10 83 views
-1

也許這是一個愚蠢的問題,但是這是我在MySQL 環境第一步......MySQL的:獲得具有不同的價值兩列從一列與冗餘ID

我有一個表像這樣

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中的查詢是在同一行上獲取來自同一列的不同值,但在多於一個類時會有所不同。 我希望很清楚,在此先感謝!

回答

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 

DEMO HERE

+0

@ user2567961沒有這個答案幫助你的? –

相關問題