这是从MSSQL转换到MySql。以下是我试图开始工作的代码:帮我用这个MySql完全外连接(或联合)
CREATE TEMPORARY TABLE PageIndex (
IndexId int AUTO_INCREMENT NOT NULL PRIMARY KEY,
ItemId VARCHAR(64)
);
INSERT INTO PageIndex (ItemId)
SELECT Paths.PathId
FROM Paths,
((SELECT Paths.PathId
FROM AllUsers, Paths
WHERE Paths.ApplicationId = @ApplicationId
AND AllUsers.PathId = Paths.PathId
AND (@Path IS NULL
OR Paths.LoweredPath LIKE LOWER(@Path))) AS SharedDataPerPath
UNION -- This used to be a FULL OUTER JOIN but MySQL doesnt support that.
(SELECT DISTINCT Paths.PathId
FROM PerUser, Paths
WHERE Paths.ApplicationId = @ApplicationId
AND PerUser.PathId = Paths.PathId
AND (@Path IS NULL
OR Paths.LoweredPath LIKE LOWER(@Path))) AS UserDataPerPath
ON SharedDataPerPath.PathId = UserDataPerPath.PathId)
WHERE Paths.PathId = SharedDataPerPath.PathId OR Paths.PathId = UserDataPerPath.PathId
ORDER BY Paths.Path ASC;
假设任何变量已存在。如果这是破坏是在'作为SharedDataPerPath'的一部分,所以我猜我滥用选择语句,以便您可以像MySQL中不支持表一样访问它?如果表格模式有帮助,请回复评论,我会将其添加到问题中。
在此先感谢!
可以投给此功能来实现[MySQL的](http://bugs.mysql.com/bug.php?id=18003&thanks=3¬ify=67 ) – 2012-06-11 14:44:13