MySQL查询:
SELECT SUM(Target) AS target FROM salesmen WHERE `Area Code` IN (SELECT `Area Code` FROM distributors_areas WHERE Regional_Manager IN (SELECT `Name` FROM `regional managers` WHERE ID = 0) OR WHERE Territory_Manager IN (SELECT Name FROM `territory managers` WHERE ID = 'TM_02'))
运行此查询时,出现此错误:#1064 - 您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在“WHERE Territory_Manager IN (SELECT Name FROM territory managers
WHERE ID = 'TM' at line 1
最佳答案
SQL 中没有或where
。只需或
:
SELECT SUM(s.Target) AS target
FROM salesmen s
WHERE s.`Area Code` IN
(SELECT da.`Area Code`
FROM distributors_areas da
WHERE da.Regional_Manager IN
(SELECT rm.`Name`
FROM `regional managers` rm
WHERE rm.ID = 0
) OR
da.Territory_Manager IN
(SELECT tm.Name
FROM `territory managers` tm
WHERE tm.ID = 'TM_02'
)
);
我想我在之前的一个问题中提到过您应该在查询中使用表别名。 我在这里重复这个建议!。当您有多个表引用时,您应该始终养成包括表别名和限定所有列名的习惯,以避免在查询中出现常见的、可预防的错误。
关于mysql - 如何解决MySQL错误: #1064 in this case?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56717474/