首页 > 解决方案 > 如何加入与外键链接的三个表并获得总和和计数?

问题描述

我创建了 3 个表,表 Customer、Order、Items

表:客户

Emp_ID 顾客姓名 性别
1 罗尼 男性
2 杰米 女性

表:订单

Emp_ID Order_Id Orde_Date
1 11 24/08/2021

表:项目

Emp_ID Order_ID Items_ID Items_Type
1 11 4 咖啡
1 11 5 牛奶
1 11 6 咖啡
1 11 7 香蕉

如何加入和链接这 3 个表?2021 年 8 月 24 日罗尼订购了多少咖啡、牛奶和香蕉?请查询

标签: mysqlsql

解决方案


你的数据模型是错误的。

一个客户可以有多个订单,一个订单应该只与一个客户相关联。所以在这种情况下,表Order应该有一个外键Customer

一个订单可以有多个商品,一个商品可以出现在多个订单中,因此您应该创建一个中间表 ( OrderItems),其外键为Ordersand Items,以及与此关系相关的附加属性(例如 a quantity

获取此数据模型的所有属性的查询将是这样的:

select *
from Orders o
  join Customers c
    on o.CustomerId = c.CustomerID
  join OrderItems oi
    on o.OrderId = oi.OrderId
  join Items i
    on i.ItemId = oi.ItemId

推荐阅读