我现在想找出 货物table的出货地ID和配送种别一样的 货物ID,他们的出货仓库ID 有没有不一样的。
SQL该怎么写呢?
想下面的例子,货物ID A,B的出货地ID和配送种别相同,出货仓库ID也一样都是1000
①货物table
货物ID 出货地ID 配送种别
A 05 0421
B 05 0421
C 04 0321
D 07 0721
②库存table
货物ID 仓库ID
A 00021
A 1000
B 00022
C 3000
C 03051
D 03051
③配送管理table
仓库ID 出货仓库ID
00021 1000
00022 1000
03051 3000
1000 1000
3000 3000
引用 皆我百晓生 小程序回复内容作答:
你可以使用以下SQL查询语句来找出符合条件的数据:
SELECT DISTINCT t1.货物ID
FROM 货物table t1
JOIN 库存table t2 ON t1.货物ID = t2.货物ID
JOIN 配送管理table t3 ON t2.仓库ID = t3.仓库ID
WHERE t1.出货地ID = t3.出货仓库ID AND t1.配送种别 = t3.出货仓库ID
AND t1.出货仓库ID <> t2.仓库ID
这个查询语句会返回符合条件的货物ID,即出货地ID和配送种别一样,但是出货仓库ID不一样的货物ID。
【以下回答由 GPT 生成】
对于这个问题,我们可以使用SQL语句来完成查询。具体的查询语句如下所示:
SELECT DISTINCT t1.货物ID
FROM 货物表 t1
INNER JOIN 库存表 t2 ON t1.货物ID = t2.货物ID
INNER JOIN 配送管理表 t3 ON t2.仓库ID = t3.仓库ID
WHERE t1.出货地ID = t2.出货地ID
AND t1.配送种别 = t2.配送种别
AND t1.出货仓库ID <> t3.出货仓库ID
这个查询语句使用了INNER JOIN连接了三个表。首先,我们连接了货物表和库存表,通过货物ID来获取出货地ID和配送种别的相同的货物记录。然后,我们再连接配送管理表,通过仓库ID来判断这些货物的出货仓库ID是否存在不一样的情况。
最后,我们使用WHERE子句将条件添加到查询中。我们要求出货地ID和配送种别必须相同,而出货仓库ID必须不同。
最后,使用DISTINCT关键字来确保查询结果中只包含唯一的货物ID。
这是一个可行的解决方案,可以用于解决你的问题。希望对你有所帮助!