1

我有一些适用于 SQL Server 但不适用于 MySQL 的 SQL(从实体框架中删除以提高可读性)。我假设这意味着我已经达到了 MySQL 的限制,但不能确定。

我有 3 张桌子:

具有 ProductId 和 AccommodationId 的产品

带有住宿 ID 的住宿

带有 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。

谢谢

4

1 回答 1

0

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

哇,那是一些看起来很丑陋的代码。我认为归结为以下几点。它只是以一种真正的方式到达那里。

SELECT  Project1.*

FROM    products AS Project1

        INNER JOIN accommodations AS A 
        ON Project1.AccommodationId = A.AccommodationId
于 2013-06-28T17:45:26.177 回答