**
SELECT clientName, orderID FROM
Orders INNER JOIN clients ON orders.clientID = clients.clientID;
**
我可以显示每个客户和他们的每个订单。请帮我改正我的SQL语法,让我显示每个客户的订单数。
我还想让我的结果按客户名称的字母顺序排列。
请给我写一个新的SQL语法!
SELECT clientName, COUNT(*)FROM Orders INNER JOIN clients ON orders.clientID = clients.clientIDGROUP BY clientNameORDER BY clientName。
你可以使用聚合。
select c.clientName, count(*) no_orders
from clients c
inner join orders o on o.clientID = c.clientID
group by c.clientID, c.clientName
注释:
表的别名使查询更容易读和写
添加客户的id到 group by
子句处理了不同客户机可能有相同名称的可能性
一般来说,您希望避免使用骆驼大小写标识符(ClientName
),而用蛇形箱代替(client_name
):从数据库的角度来看,标识符是不分大小写的(除非加引号)