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】:你有语法错误。
UPDATE
和 INNER 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 行的 '' 附近使用正确的语法