【发布时间】:2017-12-14 02:08:13
【问题描述】:
我有这 3 个表:users、orders 和 order_item。
当用户可以有订单时,订单项目可以是仅事件、仅会员或两者兼而有之,因此将 2 行写入 order_items
用户表
id | user_id | name | phone
---|-----------|-------|------
1 | 123456789 | Jon | 555-55555
2 | 123456780 | Alice | 555-6666
订单表
id | user_id | user_uid | user_info
---|---------|-----------|----------
1 | 1 | 123456789 | bla
2 | 2 | 123456780 | foo
3 | 2 | 123456780 | foo
order_items 表
id | order_id | order_type | price
--- | -------- | ---------- | ------
1 | 1 | membership | 70
2 | 1 | event | 200
3 | 2 | event | 300
4 | 3 | membership | 70
关系是这样的,
order_items.order_id -> orders.id
orders.user_id -> users.id
orders.user_uid -> users.user_id
我正在寻找能产生这种类型输出的查询,
user_id | name | count_membership | count_events | total_orders
-------- | ------ | ------------------ | -------------- | --------------
123456789 | Jon | 1 | 1 | 1
123456780 | Alice | 1 | 1 | 2
我喜欢计算用户拥有的总订单数,并计算他拥有的每件商品的数量。最后我喜欢过滤掉所有count_membership = 0的用户
提前致谢,
【问题讨论】:
-
你的表有no关系
-
你所寻求的称为pivoting。
标签: mysql