如何编写SQL查询获取指定warehouse_id所属分组的全部关联warehouse_id
仓库分组关联查询解决方案
需求说明
给定指定warehouse_id(示例为2),需先找出该仓库所属的所有warehouse_group_id,再获取这些分组下包含的全部warehouse_id(去重后结果为1、2)。
方案一:子查询实现
SELECT DISTINCT warehouse_id FROM your_table_name WHERE warehouse_group_id IN ( SELECT warehouse_group_id FROM your_table_name WHERE warehouse_id = 2 );
- 内层子查询:筛选出
warehouse_id=2对应的所有分组ID - 外层查询:基于这些分组ID,取出所有关联的仓库ID,用
DISTINCT去除重复项
方案二:自连接实现
SELECT DISTINCT w2.warehouse_id FROM your_table_name w1 JOIN your_table_name w2 ON w1.warehouse_group_id = w2.warehouse_group_id WHERE w1.warehouse_id = 2;
- 将表与自身通过
warehouse_group_id关联,筛选出目标仓库(w1.warehouse_id=2)所在的分组 - 取出关联分组下的所有仓库ID,
DISTINCT确保结果唯一
注意:请将上述语句中的
your_table_name替换为你的实际表名。
内容的提问来源于stack exchange,提问作者Matexon
相关产品推荐
相关产品推荐

