gpt4 book ai didi

java - LEFT JOIN 卡住查询执行

转载 作者:行者123 更新时间:2023-12-02 03:57:23 24 4
gpt4 key购买 nike

我有一个非常简单的 SQL 查询:

SELECT  o.description, oi.description, cu.name
FROM dbo.order o
LEFT JOIN dbo.orderitem oi o.orderItemId = oi.orderItemId
INNER JOIN dbo.customer cu on cu.customerId = o.customerId
WHERE cu.id = 12345

该查询每次都有效。

如果我将 INNER JOIN 更改为 LEFT JOIN...

LEFT JOIN dbo.customer cu on cu.customerId = o.customerId

然后,当我使用 Java(通过 REST)调用它时,它总是会卡住,并且有时如果我使用 SQL 客户端,它也会卡住。有时它只是使用完全相同的搜索参数并按预期返回几行 (<10)。

卡住意味着它甚至不会开始计算我的 SQL 客户端 (SQuirreL) 中的执行时间,并且当我在 Java 中调用它时,它会遇到超时。

但是如果我添加第二个 WHERE 子句(例如

),它会再次起作用
SELECT  o.description, oi.description, cu.name
FROM dbo.order o
LEFT JOIN dbo.orderitem oi o.orderItemId = oi.orderItemId
LEFT JOIN dbo.customer cu on cu.customerId = o.customerId
WHERE cu.id = 12345
AND o.someOtherId = 3456

或完全删除 cu.id。

有人知道为什么会发生这种情况吗?

最佳答案

我听不懂这句话..

  LEFT JOIN dbo.orderitem am oi o.orderItemId = oi.orderItemId

你不认为它应该是这样的:

LEFT JOIN dbo.orderitem oi on o.orderItemId = oi.orderItemId

你能试试吗?

关于java - LEFT JOIN 卡住查询执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35310395/

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