Как решить MySQL ошибку: # 1064 в этом случае? - PullRequest
0 голосов
/ 22 июня 2019

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 (ВЫБЕРИТЕ Имя ОТ territory managers WHERE ID =' TM 'в строке 1

1 Ответ

1 голос
/ 22 июня 2019

В SQL нет or where.Просто or:

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'
                      )
           );

Я думаю, я упоминал в предыдущем вопросе, что вы должны использовать псевдонимы таблиц в своем запросе. Я повторяю этот совет здесь! .Если у вас есть более одной ссылки на таблицу, вы всегда должны включать псевдонимы таблиц и указывать имена всех столбцов, чтобы избежать распространенных, предотвратимых ошибок в ваших запросах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...