gpt4 book ai didi

派生表的where子句中的mysql派生表

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

我有一些 SQL(为了可读性从 Entity Framework 中删减)可以在 SQL Server 中使用,但不能在 MySQL 中使用。我假设这意味着我遇到了 MySQL 的限制但不能确定。

我有 3 个表:

具有 ProductId 和 AccommodationId 的产品

带有 AccommodationId 的住宿

有 RoomId 的房间

SELECT *
FROM (SELECT * FROM products) AS Project1
WHERE EXISTS(
SELECT *
FROM rooms
LEFT OUTER JOIN
(SELECT * FROM accommodations AS A WHERE Project1.AccommodationId = A.AccommodationId)
AS Project2 ON 1 = 1
)

我收到这个错误:

Error Code: 1054. Unknown column 'Project1.AccommodationId' in 'where clause'

我想了解这个错误,看看我是否可以更改我的代码以使 EntityFramework 生成兼容的 SQL。

谢谢

最佳答案

您不能加入 MYSQL 中的子查询并返回主 FROM 子句中的其他表之一。那是行不通的。

哇,那是一些非常难看的代码。我认为归结为以下几点。它只是以一种非常迂回的方式到达那里。

SELECT  Project1.*

FROM products AS Project1

INNER JOIN accommodations AS A
ON Project1.AccommodationId = A.AccommodationId

关于派生表的where子句中的mysql派生表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17368306/

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