我有一些SQL(从实体框架中删除可读性),它可以在SQL Server中运行,但不能在MySQL中运行。我假设这意味着我已经达到了MySQL的限制,但无法确定。
我有3张桌子:
带有ProductId和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。
由于
答案 0 :(得分:0)
您不能在MYSQL中加入子查询并返回主FROM子句中的其他表之一。那不行。
哇,那是一些非常难看的代码。我认为归结为以下几点。它只是在一个真正的回合途中到达那里。SELECT Project1.*
FROM products AS Project1
INNER JOIN accommodations AS A
ON Project1.AccommodationId = A.AccommodationId