From 37ff5677dc92ab220b61dff1aa1bceb84f5ec2a5 Mon Sep 17 00:00:00 2001 From: fangrenfu Date: Sun, 21 May 2017 11:44:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3join=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E8=A1=A8=E6=97=B6=E7=94=9F=E6=88=90=E7=9A=84delete=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5=E9=94=99=E8=AF=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Db::table('a')->join('b','a.map=b.id') ->where('b.id=1')->delete(); 生成的语句是 delete from a inner join b on a.map=b.id where b.id=1 //这在mssql中存在语法错误! 正确的语句应该是delete from a from a inner join b on a.map=b.id where b.id=1 希望采纳! --- library/think/db/builder/Sqlsrv.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/think/db/builder/Sqlsrv.php b/library/think/db/builder/Sqlsrv.php index 2e13d3fb..52629e73 100644 --- a/library/think/db/builder/Sqlsrv.php +++ b/library/think/db/builder/Sqlsrv.php @@ -21,7 +21,7 @@ class Sqlsrv extends Builder protected $selectSql = 'SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER (%ORDER%) AS ROW_NUMBER FROM (SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%) AS thinkphp) AS T1 %LIMIT%%COMMENT%'; protected $selectInsertSql = 'SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%'; protected $updateSql = 'UPDATE %TABLE% SET %SET% FROM %TABLE% %JOIN% %WHERE% %LIMIT% %LOCK%%COMMENT%'; - protected $deleteSql = 'DELETE FROM %TABLE% %USING% %JOIN% %WHERE% %LIMIT% %LOCK%%COMMENT%'; + protected $deleteSql = 'DELETE FROM %TABLE% %USING% FROM %TABLE% %JOIN% %WHERE% %LIMIT% %LOCK%%COMMENT%'; /** * order分析