Mysql 发出sql查询以获取结果
我在sql查询中遇到问题。这就是表结构的外观 场景是订单表中有订单详细信息(最初发货详细信息id为空),并且订单项目也相应地保存。发送订单时,驱动程序可以选择一个或多个订单。假设如果他选择了两个订单(“CC0-C1B-50B-63B”和“FB2-FC6-57B-DD8”),则会将一条新记录添加到shipping_details表中(因此在我们的情况下,位置数为2),并相应地将两条记录保存在Delivery_Place表中Mysql 发出sql查询以获取结果,mysql,join,group-by,Mysql,Join,Group By,我在sql查询中遇到问题。这就是表结构的外观 场景是订单表中有订单详细信息(最初发货详细信息id为空),并且订单项目也相应地保存。发送订单时,驱动程序可以选择一个或多个订单。假设如果他选择了两个订单(“CC0-C1B-50B-63B”和“FB2-FC6-57B-DD8”),则会将一条新记录添加到shipping_details表中(因此在我们的情况下,位置数为2),并相应地将两条记录保存在Delivery_Place表中 我想要的:如果我选择订单号“CC0-C1B-50B-63B”,我想要获得
我想要的:如果我选择订单号“CC0-C1B-50B-63B”,我想要获得所有的交货订单(在我们的案例中,还有另一个订单是“FB2-FC6-57B-DD8”,结果应该是这两个订单)以及这两个订单的orderd_items表中的部门ID。(如果一个订单中有多个项目,则所有项目都在同一个部门) 所以我尝试了这个查询
select oi.FKOrderID,dp.deliveryPlaceID,dp.FKShippingDetailsID,dp.city,dp.position,oi.FKDepartmentID
from
`order` o join `shipping_details` sd
on o.FKShippingDetailsID = sd.shippingDetailsID
join `ordered_items` oi
on o.orderID = oi.FKOrderID
join `delivery_places` dp
on dp.FKShippingDetailsID=sd.shippingDetailsID
where o.orderID = 'CC0-C1B-50B-63B'
group by dp.deliveryPlaceID
order by dp.position asc ;
结果是,
但对于第二行,我应该将“FB2-FC6-57B-DD8”作为FKOrderID,将“11”作为FKDepartmentID
这是数据表
使用输入数据更新
订单表
发货明细表
Ordered_items表(列:orderedItemsID、FKIMEDID、数量、大小、FKDepartmentID、FKOrderID)
部门表
那么,如何修改此查询以获得该结果呢
谢谢。这就是我取得成绩的原因
select
distinct(oi.FKOrderID),dp.deliveryPlaceID,dp.FKShippingDetailsID,dp.city,dp.longitude,dp.latitude,dp.timestamp,dp.position,dp.status,o.orderStatus,oi.FKDepartmentID
from
`ordered_items` oi,
`order` o join `shipping_details` sd
on o.FKShippingDetailsID = sd.shippingDetailsID
join `delivery_places` dp
on dp.FKShippingDetailsID=sd.shippingDetailsID
where o.orderID = 'CC0-C1B-50B-63B'
and
oi.FKOrderID in (select orderID from `order` where
FKShippingDetailsID=o.FKShippingDetailsID)
group by oi.FKOrderID
order by dp.position asc
这是结果
很抱歉,您是否介意为您的问题创建一个简单的版本……很难准确地确定您想要的是什么?您可以随意处理示例数据吗?我总是发现ER图很难阅读。张贴白板图片只会让事情变得更糟。如果我选择订单号“CC0-C1B-50B-63B”,我想获取所有的交货订单(在我们的…….停止…解释一下我想获取我所困惑的所有交货订单?@careen刚开始从查询中读取。对于复杂性,抱歉