MySQL每行记录一行,新列上有JOINed记录

时间:2016-04-12 08:39:10

标签: mysql sql

我的任务是为其他人提供包含大量原始数据的CSV,以便使用Excel进行分析。它是users表和purchases链接表(用户和产品),其要求是:

每个用户的行,其中包含用户ID和其他一些基本信息。该行的每个后续列都是他们在3月份购买的product_id。仅限3月份购买,仅限3月份购买量最多的前1000名用户。

这样的事情:

select purchases.user_id, purchases.product_id
  from users
  left join purchases on purchases.user_id = users.id
  where (purchases.created_at < '2016-03-31 23:59:59.999999' 
  and purchases.created_at > '2016-03-01 00:00:00.000000')
  -- an order by statement here for users with the most purchases
  limit 1000
;

但不是结果

user_id | product_id
1000    | 3391
1000    | 8482
1000    | 4386
1008    | 4382
...
是这样的:

user_id | product_id | product_id | product_id
1000    | 3391       | 8482       | 4386
1008    | 4382       |            |
...

我还是一个SQL初学者,并不确定从哪里开始。 coalesce似乎错了。谢谢!

0 个答案:

没有答案