私は3つのテーブル、products
、customers
を、持っているorder
MySQLのピボットはcolumに行を作るために
製品:
id | name |
1 | milk |
2 | bread|
3 | Pea |
お客様:
id | name | category
1 | James | retailer
2 | Paul | vendor
3 | Dave | retailer
注文:
id | product_id | customer_id | qty | price
1 | 1 | 2 | 23 | 50
2 | 2 | 2 | 4 | 30
3 | 3 | 2 | 6 | 10
4 | 2 | 1 | 9 | 30
5 | 3 | 1 | 2 | 10
6 | 1 | 3 | 6 | 50
7 | 3 | 3 | 7 | 10
私は
SELECT customer.name, product.name as pname, order.qty, order.price FROM customer, product, order
WHERE customer.id = order.customer_id
AND product.id = order.product_id AND customer.category = "vendor"
ようvendor
のカテゴリに顧客が取引を表示するクエリを実行すると、私のようなものでしょう:
name | milk | bread | pea | total
Paul | 23 | 4 | 6 | 90
はしばらく:
name | pname | qty | price
Paul | milk | 23 | 50
Paul | bread | 4 | 30
Paul | pea | 6 | 10
を私が代わりにこれをしたいです小売業者の商品は次のようになります:
SELECT customer.name, product.name as pname, order.qty, order.price FROM
customer, product, order
WHERE customer.id = order.customer_id
AND product.id = order.product_id AND customer.category = "retailer"
私はこのようなテーブルを取得します:
name | pname | qty | price
James | bread | 9 | 30
James | pea | 2 | 10
Dave | milk | 6 | 50
Dave | pea | 7 | 10
をしかし、私はこの代わりにしたい:
name | milk | bread | pea | total
James | 0 | 9 | 2 | 40
Dave | 6 | 0 | 7 | 60
関連:https://stackoverflow.com/questions/7674786/mysql-pivot-table – Kalecser