谁能帮我解释一下这个SQL查询,要详细地,越详细越好

来源:百度知道 编辑:UC知道 时间:2024/06/17 14:38:01
SELECT dbo.基础信息.名称ID AS 商品ID, dbo.基础信息.编号 AS 商品编号,
dbo.基础信息.名称 AS 商品名称, dbo.基础信息.类别ID AS 商品类别ID,
dbo.基础信息.类别编号 AS 商品类别编号, dbo.基础信息.类别名称 AS 商品类别名称,
dbo.商品信息.通用名, dbo.商品信息.化学名, dbo.商品信息.批准文号,
dbo.商品信息.合格证, dbo.商品信息.生产厂商, dbo.商品信息.GMP认证,
dbo.商品信息.处方药, dbo.商品信息.注册商标, dbo.商品信息.报销药,
dbo.商品信息.剂型, dbo.商品信息.产地, dbo.商品信息.规格,
dbo.商品信息.默认单位 AS 单位, CONVERT(char(10), dbo.商品信息.店内码)
AS 店内码, dbo.商品信息.保存日期, dbo.商品信息.税率 AS 商品税率,
dbo.商品信息.条形码, dbo.商品信息.商品类别1, c.商品分类编号, c.商品分类名称,
dbo.基础信息.修改时间
FROM dbo.商品信息 INNER JOIN
dbo.基础信息 ON dbo.商品信息.ID = dbo.基础信息.名称ID LEFT OUTER JOIN
dbo.商品分类对应 b ON dbo.商品信息.ID = b.商品id LEFT OUTER JOIN
dbo.商品分类 c ON b.商品分类id = c.id
WHERE (dbo.商品信息.ID NOT IN ('20288', '20229', '11986')) AND
(NOT (dbo.基础信息.名称 = '1'))

本人刚开始学习数据库。请高手帮忙解释以上是这个查询,越详细越好。最详细的会追加20分

把问题分开来看。先看select部分
SELECT dbo.基础信息.名称ID AS 商品ID, dbo.基础信息.编号 AS 商品编号,
dbo.基础信息.名称 AS 商品名称, dbo.基础信息.类别ID AS 商品类别ID,
dbo.基础信息.类别编号 AS 商品类别编号, dbo.基础信息.类别名称 AS 商品类别名称,
dbo.商品信息.通用名, dbo.商品信息.化学名, dbo.商品信息.批准文号,
dbo.商品信息.合格证, dbo.商品信息.生产厂商, dbo.商品信息.GMP认证,
dbo.商品信息.处方药, dbo.商品信息.注册商标, dbo.商品信息.报销药,
dbo.商品信息.剂型, dbo.商品信息.产地, dbo.商品信息.规格,
dbo.商品信息.默认单位 AS 单位, CONVERT(char(10), dbo.商品信息.店内码)
AS 店内码, dbo.商品信息.保存日期, dbo.商品信息.税率 AS 商品税率,
dbo.商品信息.条形码, dbo.商品信息.商品类别1, c.商品分类编号, c.商品分类名称,
dbo.基础信息.修改时间
-----------------这一串不用解释,选择需要的字段
FROM dbo.商品信息 INNER JOIN dbo.基础信息
ON dbo.商品信息.ID = dbo.基础信息.名称ID
-----------------------------------这里是内连接,返回商品信息以及基础信息都存在相同ID的数据,这里的意义是把商品信息和基础信息中都存在的数据查询出来
LEFT OUTER JOIN dbo.商品分类对应 b
ON dbo.商品信息.ID = b.商品id
------------------左外连接,返回商品分类对应中的数据,如果不存在对应的商品ID则返回空值
LEFT OUTER JO