SQL 语法错误:第 1 行的“FROM table_A INNER JOIN table_B ON table_A.name = table_B.name”[重复]

Posted

技术标签:

【中文标题】SQL 语法错误:第 1 行的“FROM table_A INNER JOIN table_B ON table_A.name = table_B.name”[重复]【英文标题】:SQL syntax error : 'FROM table_A INNER JOIN table_B ON table_A.name = table_B.name' at line 1 [duplicate] 【发布时间】:2017-08-01 06:57:45 【问题描述】:

我有一个错误提示“您的 SQL 语法有错误;请查看与您的 mysql 服务器版本相对应的手册,以了解在 'FROM table_A INNER JOIN table_B ON table_A.name = table_B 附近使用的正确语法.name' 在第 1 行“

sql查询是:

$sql="UPDATE table_A SET table_A.quantity = table_A.quantity -  
table_B.quantity FROM table_A INNER JOIN table_B ON table_A.name = table_B.name 
WHERE table_B.status = 'APPROVED'";

请帮我解决这个错误。谢谢你。

【问题讨论】:

INNER 应该是内连接? 你写的是INNER而不是INNER JOIN 抱歉。这是一个错字。我正在使用 INNER JOIN 你不能像MySQL那样做UPDATE - 请参阅这个问题以了解正确的语法:***.com/questions/1262786/… 等等,什么...我认为 MySql 不合法 【参考方案1】:

“INNER”应该是“INNER JOIN”

我认为您还必须从“SET数量”中取出“table_A”

 $sql="UPDATE table_A SET quantity = table_A.quantity -  
    table_B.quantity FROM table_A INNER JOIN table_B ON table_A.name = table_B.name 
    WHERE table_B.status = 'APPROVED'";

【讨论】:

但是,我得到了这个:警告:mysql_num_rows() 期望参数 1 是资源,布尔值在 $count=mysql_num_rows($sql); 行中给出;【参考方案2】:

你有语法错误。

UPDATEINNER JOIN 的正确语法:

UPDATE T1,T2
[INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1
SET T1.C2 = T2.C2, 
    T2.C3 = expr
WHERE condition

查询:

$sql="UPDATE table_A 
INNER JOIN table_B ON table_A.name = table_B.name 
SET table_A.quantity = table_A.quantity - table_B.quantity
WHERE table_B.status = 'APPROVED'";

【讨论】:

但是,我得到了这个:警告:mysql_num_rows() 期望参数 1 是资源,布尔值在 $count=mysql_num_rows($sql); 行中给出; 你必须使用mysql_affected_rows()。

以上是关于SQL 语法错误:第 1 行的“FROM table_A INNER JOIN table_B ON table_A.name = table_B.name”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

#1064 - SQL 语法错误。靠近第 4 行的 'json DEFAULT NULL PRIMARY KEY (`id`) ENGINE=INNODB'

SQL 语法错误:第 1 行的“FROM table_A INNER JOIN table_B ON table_A.name = table_B.name”[重复]

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法

MySQL Workbench:查询中的错误(1064):第 1 行的“VISIBLE”附近的语法错误

查找缺失行的 SQL 查询返回语法错误

我的 SQL 错误:错误 1064:您的 SQL 语法有错误;