如何通过外键关联三张表并实现求和、计数的SQL查询?
外键关联规则
- Customer表以
Emp_ID作为主键,唯一标识每个客户 Order表(注意Order是SQL保留关键字,使用时建议加反引号转义)的Emp_ID作为外键关联Customer表的Emp_ID,关联订单所属客户;Order表以Order_Id作为自身主键,唯一标识每个订单- Items表的
Emp_ID作为外键关联Customer表的Emp_ID,Order_ID作为外键关联Order表的Order_Id,关联商品对应的所属客户和所属订单
统计SQL语句
注意:你提供的
Order表日期字段为Orde_Date(疑似拼写漏了字母r,若实际字段名为Order_Date可自行替换),以下SQL严格按照你给出的字段名编写
SELECT i.Items_Type, COUNT(i.Items_ID) AS purchase_quantity FROM Customer c INNER JOIN `Order` o ON c.Emp_ID = o.Emp_ID INNER JOIN Items i ON o.Order_Id = i.Order_ID AND o.Emp_ID = i.Emp_ID WHERE c.Customer_Name = 'Ronnie' AND o.Orde_Date = '2021-08-24' AND i.Items_Type IN ('Coffee', 'Milk', 'Banana') GROUP BY i.Items_Type;
如果你的日期字段是带时分秒的datetime类型,可将日期过滤条件替换为DATE(o.Orde_Date) = '2021-08-24'避免漏统计当天所有时段的订单。
内容的提问来源于stack exchange,提问作者me robi
相关产品推荐
相关产品推荐

