gpt4 book ai didi

mysql - 在返回不正确值的 SELECT 子句中使用 INNER JOIN

转载 作者:行者123 更新时间:2023-11-30 21:26:11 25 4
gpt4 key购买 nike

我在使用 INNER JOIN 函数从两个表中读取正确数据时遇到问题。我想要做的是计算每个国家/地区表 warehouse-cost-table 中 outbound-cost-pal 列的平均值。该值应插入表 Warehouse 中的相应国家/地区。我直接上代码:

    UPDATE 
Warehouse
INNER JOIN
`warehouse-cost-table`
ON
Warehouse.`location-tariff-code` = LEFT(`warehouse-cost-table`.`country`,2)
SET
Warehouse.`outbound-cost-pal` =
(
SELECT cost.`average`
FROM (SELECT * FROM Warehouse) AS wh
INNER JOIN (
SELECT `warehouse-cost-table`.`country`,
AVG(`warehouse-cost-table`.`outbound-cost-pal`) AS `average`
FROM `warehouse-cost-table`
GROUP BY `warehouse-cost-table`.`country`

) cost

ON wh.`location-tariff-code` = LEFT(cost.`country`,2)
LIMIT 1
)
;

我一直在使用的两个表的结构如下:

仓库

    |----------------------|-------------------|
| location-tariff-code | outbound-cost-pal |
|----------------------|-------------------|
| CN | |
| JP | |
|----------------------|-------------------|

仓库成本表

    |----------------------|-------------------|-------------------|
| country | Warehouse-id | outbound-cost-pal |
|----------------------|-------------------|-------------------|
| CN / China | 97 | 1 |
| CN / China | 98 | 2 |
| CN / China | 99 | 3 |
| JP / Japan | 197 | 10 |
| JP / Japan | 198 | 11 |
| JP / Japan | 199 | 12 |
|----------------------|-------------------|-------------------|

预期的结果将是:

仓库

    |----------------------|-------------------|
| location-tariff-code | outbound-cost-pal |
|----------------------|-------------------|
| CN | 2 |
| JP | 11 |
|----------------------|-------------------|

我的猜测是,在 INNER JOIN 函数中使用 select 语句会返回导致错误的多个值(国家和平均值)。为避免出现错误消息,我插入了 LIMIT 1 以不接收错误消息。我无法仅使用一个选择语句(平均)来编写此代码。跳过 LIMIT 1 语句会返回“子查询返回超过 1 行”。

我的方法是否太复杂而无法开始?

最佳答案

查看您的代码和您可以使用的代码示例

 UPDATE Warehouse w
INNER JOIN (
SELECT LEFT(`warehouse-cost-table`.`country`,2) my_country,
AVG(`warehouse-cost-table`.`outbound-cost-pal`) AS `average`
FROM `warehouse-cost-table`
GROUP BY LEFT(`warehouse-cost-table`.`country`,2
) t on t.my_country = w.`location-tariff-code`
set Warehouse.`outbound-cost-pal = t.average

关于mysql - 在返回不正确值的 SELECT 子句中使用 INNER JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com