MySQL查询与关系表

MySQL查询与关系表,mysql,database,join,Mysql,Database,Join,我有一个名为Item的表: (id int primary_key, item_name varchar, packing_list int) 装箱单是一个纸箱中的项目数量,另一个表格称为发票: (id int primary_key, quantityOfCarton int). quantityOfCarton表示一个项目的纸箱总数 假设我有以下值: 项目(1,Nutella,3);//标识、项目名称、装箱单 发票(1,2)//id,卡顿数量 所以我有两个Nutella纸箱,每个纸箱里有

我有一个名为
Item
的表:

(id int primary_key, item_name varchar, packing_list int)
装箱单是一个纸箱中的项目数量,另一个表格称为
发票

(id int primary_key, quantityOfCarton int).
quantityOfCarton表示一个项目的纸箱总数

假设我有以下值:

项目(1,Nutella,3);//标识、项目名称、装箱单

发票(1,2)//id,卡顿数量

所以我有两个Nutella纸箱,每个纸箱里有3个Nutella罐子

我想计算项目总数(Nutella jars),公式如下:

totalItems = quantityOfCarton * packing_list; // 3*2= 6 Nutella jars.
我的问题是查询将检索公式所需的数据,以及表之间应该如何关联

我想要这样的东西:

SELECT item_name, packing_list 
FROM Item and SELECT quantityOfCarton from Invoice where item_name= "nutella ";

非常感谢

不确定在指定
where item\u name=
时为什么要选择item\u name

无论如何,听起来你想要:

select quantityOfCarton * packing_list
from Item
join Invoice on Item.id=Invoice.id
where Item.item_name='nutella';

如果您经常按名称查找项目,您可能应该在项目名称上有一个索引。

是的,对不起,我是说id=1;那么这些表在键中应该如何关联呢?物料id是否应该是发票表中的外键?@AlyAlAmeen要使查询工作,它只需要是一个索引,并且已经是主键。但将Invoice.id作为项目id似乎有点奇怪;你会有一张没有商品的发票,还是一张没有发票的商品?或者一个项目有多张发票?@SOreadytohelp是的,一个项目有多张发票,实际上系统定义了库存中的所有项目,在开始为预定义项目开具发票之前,则发票应具有项目id外键,且项目id不应存储在发票中。然后,您需要类似于从项目加入发票中选择项目名称、金额(零件数量*装箱单)。id=发票。项目id,其中项目id=?