SQL--查询:一个字段的一个数值对应另一个字段的多个数值

查询:一个字段的一个数值对应另一个字段的多个数值
举例如下:

----查 一个商品 对应 多个仓库 的记录(注:一个商品名称 对应 同样的一个仓库 的记录,也会有重复)


select distinct 商品名称,仓库代码,a.仓库名称
from 商品表 b INNER JOIN 仓库表 a ON a.仓库代码 = b.仓库代码  ----4.连接仓库表,查出仓库的名称
where 商品名称 in(                                            ----3.我们最终想要的 商品名称 就在in里
	select 商品名称 FROM (                                    
		select distinct 商品名称,仓库代码 from  商品表) t1    ----1.实际:一个商品名称 对应 同样的一个仓库 的记录,也会有重复,所有要去重
    group by 商品名称 having count(仓库代码)>1)               ----2.按商品名称分组,数一下去重后的,仓库代码数量不止一个的 商品
order BY 商品名称 

注:如果(注:一个商品名称 对应 同样的一个仓库 的记录,也会有重复)不存在这种情况,那就把去重的那步删掉即可:

----查 一个商品 对应 多个仓库 的记录(注:一个商品名称 对应 同样的一个仓库 的记录,不会有重复)


select distinct 商品名称,仓库代码,a.仓库名称
from 商品表 b INNER JOIN 仓库表 a ON a.仓库代码 = b.仓库代码  
where 商品名称 in(                                           
	select 商品名称 FROM  商品表      -----------改动在这里
    group by 商品名称 having count(仓库代码)>1)              
order BY 商品名称 

你可能感兴趣的:(sql)