每个人..我在SQL Server中有一个需要移植到MySQL的视图。
SELECT Geb_ID, Geb_Key, Geb_Jahr, Geb_Parzelle, Geb_Standort,
Geb_GebArtID, Geb_BesID, Geb_boolJB, Geb_Info,
(SELECT TOP (1) Geb_BesID FROM TGebaude AS xGeb
WHERE Geb_Key = a.Geb_Key ORDER BY Geb_Jahr DESC) AS Akt_BesID
FROM TGebaude AS a
我尝试使用LIMIT 1转换此查询(因为在MySQL中没有TOP 1)但仍然没有成功,因为有子查询为其自己的表使用“a”别名。有没有办法转换这个查询?
答案 0 :(得分:1)
子查询中缺少限定符。 (并且这不应该是一个问题,因为内部/本地表应该优先于主/外部表。)除此之外我没有看到任何问题。交换TOP为LIMIT,你应该完成。请尝试添加限定符:
SELECT
Geb_ID, Geb_Key, Geb_Jahr, Geb_Parzelle, Geb_Standort,
Geb_GebArtID, Geb_BesID, Geb_boolJB, Geb_Info,
(
SELECT Geb_BesID
FROM TGebaude AS xGeb
WHERE xGeb.Geb_Key = a.Geb_Key
ORDER BY xGeb.Geb_Jahr DESC
LIMIT 1
) AS Akt_BesID
FROM TGebaude AS a;