数据库多表查询SQL语句

来源:互联网 发布:双色球出号绝密算法 编辑:程序博客网 时间:2024/06/05 20:44

最近在做“进销存业务系统”,作为项目组成员的一部分,我负责统计查询,简单说就是多表查询,网上有很多,但是很明确的却没有,所以让我这个初学者了费,最终还是搞出来了,在这里也和大家共享一下成果和其中出现的问题,高手可绕道,不求点赞,只为方便大家。下面开始:

我一共建了4个表,分别是Supplier、PurchaseMaster、PruchaseDetail、Product四个表(大家在测试的时候可以随意建,但是一定要看好我的表之间的关联关系)
表结构:
Supplier:SupplierID、 SupplierSimpleName

PurchaseMaster:PurchaseID、SupplierID

PruchaseDetail:PurchaseID、ProductID、PurchaseQuantity、PurchaseAmount

Product:ProductID、ProductName

我们要查询的是SupplierID、 SupplierSimpleName、PurchaseQuantity、PurchaseAmount、ProductName

从表结构上可以看出,各个表之间只有一个相同属性,而且每个表之间还不相同,从查询结果上来看其实与PurchaseMaster表没有什么关系,但实际上它却起到了一个连接性的作用。所以必不可少。现在我们的要求是根据SupplierID去查询我们要查询的这个项内容,查询语句如下:

SELECT s.SupplierID,s.SupplierName,       pd.PurchaseQuantity,pd.PurchaseAmount,p.ProductNamefrom Supplier s,PurchaseMaster pm,purchasedetail pd,product pwhere s.SupplierID = pm.SupplierID AND pm.PurchaseID = pd.PurchaseID      AND pd.ProductID = p.ProductID

输出结果如下:
这里写图片描述

其中出现的问题:

1、大家可以看到我在数据库里建的表都是大写字母开头,但是我在from语句后面跟的却有小写,所以这里并不影响,但是当你输入的时候会有提示,最好根据提示来,否则容易出错,我写的时候就是因为form后面的purchasedetail pd,开始用的大写的P,所以一直出不来,所以这些语句,最好用提示,凡是提示不出来的都有可能出现错误。

2、如果是已经知道要查询的SupplierID是多少,那么在where后面加上s.SupplierID = “001”并用and连接即可。

3、网上有很多关于多表查询的SQL语句,什么左右表连接了,我反正是没耐心看,哪天看我了在做补充。

0 0
原创粉丝点击