Mysql 在一条记录下显示多条记录?

Mysql 在一条记录下显示多条记录?,mysql,sql,Mysql,Sql,我的数据库中有如下记录 userid email first_name SUM Currency_flag 1 abc@gmail.com User2 8609.00 0 1 abc@gmail.com User2 12.00 1 9 xyz@gmail.com User1 99.00 0 9 xyz@gmail.com User1 200.00 1 3

我的数据库中有如下记录

userid    email    first_name    SUM    Currency_flag
1     abc@gmail.com    User2    8609.00    0   
1     abc@gmail.com    User2      12.00    1
9     xyz@gmail.com    User1      99.00    0
9     xyz@gmail.com    User1     200.00    1
34    qwer@gmail.com   User3     345.00    0
34    qwer@gmail.com   User3     200.00    1
12    dfg@gmail.com    User4       0.00    0
12    dfg@gmail.com    User4     280.00    1
现在我想把它们显示如下

userid   email    first_name      SUM_0     SUM_1
1     abc@gmail.com    User2    8609.00     12.00
9     xyz@gmail.com    User1      99.00    200.00    
34    qwer@gmail.com   User3     345.00    200.00
12    dfg@gmail.com    User4       0.00    280.00
其中,
sum\u 0
currency\u flag=0
时的和数值,
sum\u 1
currency\u flag=1
时的和数值

我该怎么做呢?

试试这个:

select userid,email,first_name,sum(if(currency_flag=0,SUM,0)),sum(if(currency_flag=1,SUM,0)) 
from table 
group by 1
SELECT 
`userid`, `email`, `first_name`, 
SUM(IF(`currency_flag`=0, `SUM`, 0)) AS `SUM_0` 
SUM(IF(`currency_flag`=1, `SUM`, 0)) AS `SUM_1` 
FROM `users` 
GROUP BY (`userid`)

一种方法是自联接:

SELECT A.UserID, A.Email, A.First_Name, A.SUM AS SUM_0, B.SUM AS SUM_1
  FROM (SELECT *           FROM AnonymousTable WHERE Currency_Flag = 0) AS A
  JOIN (SELECT UserID, SUM FROM AnonymousTable WHERE Currency_Flag = 1) AS B
    ON A.UserID = B.UserID; 

不,我不需要求和。如果currency_标志为0,我希望在一列中求和值,如果currency_标志=1,则在另一列中求和值。如果我正确,这将与在一个元素上求和相同。条件是,某些用户有两条记录,currency标志为1,currency标志为0,我需要显示一条记录的currency值列中有1的标志和另一列中有0的货币标志的记录的总和!如果您看到结果数组,则在$results['SUM\u 0']中输入货币为0的和,在$results['SUM\u 1']中输入货币为1的和!