私はこの3つのテーブルを持っています:ユーザー、注文、およびorder_item。ユーザが注文を持つことができ、注文アイテムは、イベントのみ、会員のみ、または両方であり得る、およびSO 2行はORDER_ITEMSにタイプ別にユーザーの注文をカウントするMySQLのクエリ
ユーザテーブル
を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
おかげで、すべてのユーザーをフィルタしたい最後に、
を使用して設定予想される結果を得ることができますblesは* no *の関係を持っています – Tomm
あなたが求めているものは、pivoting *と呼ばれています。 –