Предложение MySQL Join в обновлении - PullRequest
4 голосов
/ 09 июня 2011

При попытке выполнить этот запрос:

>mysql_query("UPDATE contracts 
              SET x = '1' 
              FROM contracts 
              INNER JOIN employees 
              ON contracts.contract_employeeid=employees.employee_id 
              WHERE experience >= '6'") or die(mysql_error());

Я получаю следующее сообщение об ошибке:

В синтаксисе SQL есть ошибка;обратитесь к руководству, соответствующему вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с контрактами. INNER JOIN сотрудники ON contract.contract_employeeid = employee.employee_id WHERE опыт> = '6'

Словами, янеобходимо установить x = 1 в таблице «контракты» для сотрудников, имеющих опыт работы более 6 лет (для этого мне нужно объединиться с таблицей «сотрудники» в employee_id = contract_employeeid, поскольку их опыт хранится в этой таблице) * +1010 *

Ответы [ 2 ]

4 голосов
/ 09 июня 2011

Вы, вероятно, можете переместить часть JOIN вашего запроса перед инструкциями SET:

UPDATE contracts
INNER JOIN employees ON contracts.contract_employeeid = employees.employee_id
SET x = '1'
WHERE experience >= '6'
1 голос
/ 09 июня 2011
UPDATE contracts, employees
    SET contracts.x = '1'
    WHERE contracts.contract_employeeid=employees.employee_id
        AND employees.experience >= '6'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...