如何将此内部连接查询从SQL Server转换为MySQL?

如何将此内部连接查询从SQL Server转换为MySQL?,sql,mysql,sql-server,inner-join,Sql,Mysql,Sql Server,Inner Join,我目前正在将客户的应用程序从使用SQL Server的Windows上的ColdFusion迁移到使用MySQL的Linux上的ColdFusion,并且在重新创建他们关于连接的视图时遇到了一些问题 有谁能帮我弄清楚以下内容应该如何转换 SELECT <columns> FROM assetType INNER JOIN assets INNER JOIN AssetToContent ON assets.asset_id = AssetToContent.asset_id

我目前正在将客户的应用程序从使用SQL Server的Windows上的ColdFusion迁移到使用MySQL的Linux上的ColdFusion,并且在重新创建他们关于连接的视图时遇到了一些问题

有谁能帮我弄清楚以下内容应该如何转换

SELECT 
<columns> 
FROM assetType 
INNER JOIN assets
INNER JOIN AssetToContent ON assets.asset_id = AssetToContent.asset_id 
ON assetType.asset_typeID = assets.asset_typeID 
RIGHT OUTER JOIN ContentType 
INNER JOIN Content ON ContentType.ContentTypeID = Content.ContentTypeID 
ON AssetToContent.ContentID = Content.ContentID 
LEFT OUTER JOIN Page_Content ON Content.ContentID = Page_Content.ContentID 
RIGHT OUTER JOIN Page ON Page_Content.PID = Page.PID 
选择
从资产类型
内部联接资产
内部连接AssetToContent ON assets.asset\u id=AssetToContent.asset\u id
在assetType.asset\u typeID=assets.asset\u typeID上
右外部联接ContentType
ContentType.ContentTypeID=Content.ContentTypeID上的内部联接内容
在AssetToContent.ContentID=Content.ContentID上
左侧外部联接页面内容在Content.ContentID=页面内容在Content.ContentID上
页面上的右外部联接页面\u Content.PID=Page.PID

没有ON子句的内部连接让我很困惑,我找不到任何关于嵌套连接排序的好的SQL Server文档

这应该行得通。我不知道SQL Server使用的伏都教语法是什么,但您的ON子句到处都是:

SELECT 
<columns> 
FROM assetType 
INNER JOIN assets ON assetType.asset_typeID = assets.asset_typeID 
INNER JOIN AssetToContent ON assets.asset_id = AssetToContent.asset_id 
INNER JOIN Content ON AssetToContent.ContentID = Content.ContentID 
RIGHT OUTER JOIN ContentType ON ContentType.ContentTypeID = Content.ContentTypeID 
LEFT OUTER JOIN Page_Content ON Content.ContentID = Page_Content.ContentID 
RIGHT OUTER JOIN Page ON Page_Content.PID = Page.PID 
选择
从资产类型
assetType.asset\u typeID=assets.asset\u typeID上的内部联接资产
内部连接AssetToContent ON assets.asset\u id=AssetToContent.asset\u id
AssetToContent.ContentID=Content.ContentID上的内部联接内容
ContentType.ContentTypeID=Content.ContentTypeID上的右外部联接ContentType
左侧外部联接页面内容在Content.ContentID=页面内容在Content.ContentID上
页面上的右外部联接页面\u Content.PID=Page.PID

这应该行得通。我不知道SQL Server使用的伏都教语法是什么,但您的ON子句到处都是:

SELECT 
<columns> 
FROM assetType 
INNER JOIN assets ON assetType.asset_typeID = assets.asset_typeID 
INNER JOIN AssetToContent ON assets.asset_id = AssetToContent.asset_id 
INNER JOIN Content ON AssetToContent.ContentID = Content.ContentID 
RIGHT OUTER JOIN ContentType ON ContentType.ContentTypeID = Content.ContentTypeID 
LEFT OUTER JOIN Page_Content ON Content.ContentID = Page_Content.ContentID 
RIGHT OUTER JOIN Page ON Page_Content.PID = Page.PID 
选择
从资产类型
assetType.asset\u typeID=assets.asset\u typeID上的内部联接资产
内部连接AssetToContent ON assets.asset\u id=AssetToContent.asset\u id
AssetToContent.ContentID=Content.ContentID上的内部联接内容
ContentType.ContentTypeID=Content.ContentTypeID上的右外部联接ContentType
左侧外部联接页面内容在Content.ContentID=页面内容在Content.ContentID上
页面上的右外部联接页面\u Content.PID=Page.PID

首先,请努力格式化您的问题,使其可读。第二,既然您的SQL是可读的,它甚至看起来在语法上都是无效的。你有不带连接的ON子句。(第6行和第9行)。请注意,您的问题是唯一标有“mssql”的问题。这是因为正确的标记是“sql server”。@hobodave,它实际上在语法上是正确的,我在sql server中检查了它,它只是排列得很奇怪。@HLGEM:我明白了。哎呀,我真不敢相信SQL Server会解析这样的废话。首先,请努力格式化您的问题,使其可读。第二,既然您的SQL是可读的,它甚至看起来在语法上都是无效的。你有不带连接的ON子句。(第6行和第9行)。请注意,您的问题是唯一标有“mssql”的问题。这是因为正确的标记是“sql server”。@hobodave,它实际上在语法上是正确的,我在sql server中检查了它,它只是排列得很奇怪。@HLGEM:我明白了。呃,我真不敢相信SQL Server会解析这样的废话。我不知道为什么会被否决。它在语法上是有效的MySQL,并以唯一有意义的方式将ON子句与适当的JOIN配对。SQL Server语法不比任何其他SQL方言更像巫毒。。。特别是当我们看到MySQL所允许的内容是有效的时+SQL Server不需要对on子句进行奇怪的放置,我怀疑Cold Fusion只是以非标准方式创建了查询。这是有效的,因为ON子句在那里,但人们通常在手动编写查询时不会将它们分开。@HLGEM:Coldfusion(据我所知)不会为您创建查询。不确定为什么会被否决。它在语法上是有效的MySQL,并以唯一有意义的方式将ON子句与适当的JOIN配对。SQL Server语法不比任何其他SQL方言更像巫毒。。。特别是当我们看到MySQL所允许的内容是有效的时+SQL Server不需要对on子句进行奇怪的放置,我怀疑Cold Fusion只是以非标准方式创建了查询。这是有效的,因为ON子句在那里,但是人们在手动编写查询时通常不会将它们分开。@HLGEM:Coldfusion(据我所知)不会为您创建查询。