我在数据库中有两个表,我必须从中获取列表。 第一个表是users表,它只是一个包含用户信息的普通表。另一个表是提交表,其中包含用户提交的列表。例如,你可以假设这个表如下
id user_id submission_name status
1 1 nnnn pending
2 1 fgs accepted
3 2 sds rejected
4 2 asdasd pending
我想获得如下数据 (假设用户和提交表的左连接)
id username total_submissions accepted_subs rejected_subs pending_subs
1 ABC 2 1 0 1
2 XYZ 2 0 1 1
我正在使用mysql。可以使用什么查询来获取这样的数据? 我能够得到这个数据
id username total_submissions
1 ABC 2
2 XYZ 2
答案 0 :(得分:1)
显然,根据您提供的数据,您无法获得username
。但是你的问题的其余部分是使用条件聚合解决的:
select s.user_id, count(*) as total_submissions,
sum( s.status = 'accepted' ) as accepted,
. . . -- add additional expressions here for other statuses
from submissions s
group by s.user_id;
您应该能够如何将表连接在一起以获取用户名。