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的和!