查询Mysql数据库

时间:2016-02-11 17:59:25

标签: mysql database database-design

我有一个名为Order

的表
-______________________
|Order_id | customer_id |
|_________|_____________|
|     1   |    a        |
|     2   |    b        |
|     3   |    c        |
|     4   |    a        |
|_________|_____________|

我需要一个查询来查找Customer_id,其中包含多个订单的列表并将这些内容存储在新表中

2 个答案:

答案 0 :(得分:0)

  

查找包含多个订单列表的Customer_id

那么只有COUNT()或任何给定customer_id的行?像这样:

SELECT COUNT(order_id) AS order_count, customer_id FROM test GROUP BY customer_id

这将返回:

order_count    customer_id
--------------------------
2              a
1              b
1              c

如果您想进一步将结果减少到只有多个订单的结果,只需对其进行过滤即可。我的SQL有点生疏,但这应该可以解决问题:

SELECT * FROM
    (SELECT COUNT(order_id) AS order_count, customer_id FROM order GROUP BY customer_id) AS order_counts
WHERE order_count > 1

哪会产生:

order_count    customer_id
--------------------------
2              a

答案 1 :(得分:0)

此SQL将创建一个客户超过1个订单的新表

CREATE TABLE Multiple_Orders AS
   SELECT order_id, customer_id, COUNT(*) AS order_cnt FROM order 
   GROUP BY customer_id
   HAVING order_cnt > 1