一种SQL查询,不能用于获取表中的订单数量

时间:2012-04-24 06:33:31

标签: sql join mysqli

这是数据库SQL编码项目的一部分。

我需要设计一个表来保存客户的订单 假设客户的详细信息(例如名称)存储在另一个表中。

使用我为订单设计的表,并假设其他表,写 一个SQL查询,可以为每个客户提供订单数量,每个客户一行。

 The “Orders” table
 Order_ID   Order_NO    Customer_ID
 1            8088            3
 2            9632            1
 3            1272            4
 4            6037            1

假设客户名称和其他详细信息(地址,电话号码,电子邮件)存储在“客户”表中。

我的SQL:

 SELECT Customers.FirstName, Customers.FirstName, Orders.OrderNo
 FROM Customers
 FULL JOIN Orders
 ON Customers.Customer_ID = Orders.Customer_ID
 ORDER BY Customers.LastName

有什么东西拧干吗?

3 个答案:

答案 0 :(得分:3)

将查询更改为内部联接

SELECT 
    Customers.FirstName
    , Customers.FirstName
    , Orders.OrderNo  
FROM
    Customers  
    INNER JOIN Orders  ON Customers.Customer_ID = Orders.Customer_ID  
ORDER BY 
    Customers.LastName

查询客户的订单金额

SELECT 
    Customers.LastName
    ,   COUNT(Orders.Order_Id)
FROM
    Customers  
    INNER JOIN Orders  ON Customers.Customer_ID = Orders.Customer_ID  
GROUP BY
    Customers.LastName
ORDER BY 
    Customers.LastName

完全加入

http://www.w3schools.com/sql/sql_join_full.asp

内部联接

http://www.w3schools.com/sql/sql_join_inner.asp

答案 1 :(得分:2)

如果你只想COUNT订单,你可以这样做:

SELECT 
    Customers.FirstName, 
    (
        SELECT
            COUNT(*)
        FROM
            Orders
        WHERE
            Orders.Customer_ID=Customers.Customer_ID
    ) AS NbrOfOrders
FROM 
    Customers

参考文献:

答案 2 :(得分:1)

不要忘记COUNTGROUP BY