gpt4 book ai didi

MySQL 语句在本地计算机上失败但在部署计算机上失败?

转载 作者:行者123 更新时间:2023-11-29 13:49:02 25 4
gpt4 key购买 nike

作为工作的一部分,我被分配到一个大型 Java EE 项目,其中散布着数百条 SQL 语句。我在我的计算机上设置了该项目,并且能够很好地部署该网站并使用 99% 没有问题。不过,我遇到了一个奇怪的情况,那就是当我尝试在网站上创建一个条目时(这是一种基于政府的项目形式)。当程序尝试执行查询时,MySQL 抛出异常:

SELECT d.id, ..., dol.weight, d.status
FROM DeliveryOrderEJB d, InbondEJB_DeliveryOrderEJB_link lnk
LEFT JOIN DOLineEJB dol
ON dol.id=(
SELECT MIN(dol2.id)
FROM DOLineEJB dol2
WHERE d.id=dol2.DeliveryOrderEJB_lines
)
WHERE d.id=lnk.DeliveryOrderEJB_id
AND lnk.InbondEJB_itNo='...'
ORDER BY d.id

它给我的异常(exception)是“where 子句”中的未知列“d.id”

我感到困惑的部分是为什么它在生产机器上似乎工作正常,而这似乎是我的机器上唯一失败的部分。该列显然存在于 DeliveryOrderEJB 表中。

谢谢!

最佳答案

失败是指嵌套子查询中的d.id:

ON dol.id=(
SELECT MIN(dol2.id)
FROM DOLineEJB dol2
WHERE d.id=dol2.DeliveryOrderEJB_lines
)

您可以修复查询:

SELECT d.id, ..., dol.weight, d.status
FROM DeliveryOrderEJB d join
InbondEJB_DeliveryOrderEJB_link lnk
on d.id=lnk.DeliveryOrderEJB_id left join
DOLineEJB dol
ON dol.id=(
SELECT MIN(dol2.id)
FROM DOLineEJB dol2
WHERE d.id=dol2.DeliveryOrderEJB_lines
)
WHERE lnk.InbondEJB_itNo='...'
ORDER BY d.id

我相信问题是因为你的机器上有不同版本的MySQL。 MySQL 在 5.0 版本左右更改了 , 的语义。

关于MySQL 语句在本地计算机上失败但在部署计算机上失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975711/

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