Sql (';、交叉、完整、内部、连接、左侧、自然、打开、右侧或使用预期、get';、WITH';

Sql (';、交叉、完整、内部、连接、左侧、自然、打开、右侧或使用预期、get';、WITH';,sql,amazon-redshift,Sql,Amazon Redshift,我有一个SQL请求 这是它的部分代码 LEFT JOIN dbo.contacts_client_organization cog WITH(NOLOCK) ON cog.clientid = be.clientid 在cog之后,我有一个错误 “(”、交叉、完全、内部、连接、左侧、自然、打开、右侧或使用预期的、get”WITH 我想重写查询以在Amazon Redshift上使用它 这是完整的查询 我如何解决它?在MSSQL中,您的查询可以正常

我有一个SQL请求

这是它的部分代码

    LEFT JOIN       dbo.contacts_client_organization cog WITH(NOLOCK)
ON              cog.clientid = be.clientid
在cog之后,我有一个错误

“(”、交叉、完全、内部、连接、左侧、自然、打开、右侧或使用预期的、get”WITH

我想重写查询以在Amazon Redshift上使用它

这是完整的查询


我如何解决它?

在MSSQL中,您的查询可以正常工作。但对于MYSQL,如果您需要事务隔离,请尝试以下操作:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
select ...

 LEFT JOIN       dbo.contacts_client_organization cog WITH(NOLOCK)
ON              cog.clientid = be.clientid;
COMMIT ;

在红移(或Postgres)中不需要nolock提示

由于其底层体系结构,读卡器从不阻止写入程序,而写入程序也从不阻止读卡器,因此红移和Postgres不需要在SQL Server中启用非锁定读取的提示


只需使用(NOLOCK)删除
无论如何都没有等价物。

看起来您试图在MySQL数据库上使用SQL Server特定的功能?
dbo.xxx
看起来像SQL Server语法。您真的在使用MySQL吗?另外,请包含整个查询,除非它太大,在这种情况下包含的内容足以让人理解。我尝试重写MSSQL quer在redshift@TimBiegeleisen上使用它这里是完整的请求@TimBiegeleisenRedshift使用PostgreSQL,所以限制自己使用PostgreSQL语法,这样您就可以更接近于工作了。PostgreSQL文档可以在线获取。我需要在查询开始时编写
设置事务隔离级别READ UNCOMMITTED;
?我想我使用Redshift和它的PostgreSQL,它不适合我吗?@EugeneSukh这可能对你有帮助吗?