数据库多表查询SQL语句

mysql数据库 专栏收录该内容
3 篇文章 0 订阅

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

我一共建了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.ProductName

from Supplier s,PurchaseMaster pm,purchasedetail pd,product p

where 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语句,什么左右表连接了,我反正是没耐心看,哪天看我了在做补充。

  • 2
    点赞
  • 2
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值