Я изучаю через MySQL Ver.5.7.17, пожалуйста, уточните мой нижний запрос.MySQL self join if null function
У меня есть сотрудники таблицы, которые содержат идентификаторы сотрудников и соответствующие идентификаторы менеджера, но у немногих сотрудников нет идентификаторов менеджера, поскольку они принадлежат к ролям менеджера.
Столбцы таблицы - это идентификатор сотрудника, имя, фамилия, идентификатор менеджера. Я разработал ниже запрос self join, который дает мне сотрудников с идентификаторами менеджера, но я ищу дополнительную информацию о менеджере (которые также являются сотрудниками), у которых нет идентификаторов менеджера (null).
SELECT E.EMPLOYEE_ID AS EMP_ID, CONCAT(E.FIRST_NAME,' ',E.LAST_NAME
) AS EMP_NAME,
M.EMPLOYEE_ID AS MGR_ID
,CONCAT(M.FIRST_NAME,' ',M.LAST_NAME) AS MGR_NAME
FROM EMPLOYEES AS E JOIN EMPLOYEES AS M
ON (E.MANAGER_ID =M.EMPLOYEE_ID) ORDER BY MGR_ID
Я попробовал функцию IF NULL в запросе, как показано ниже, и получил сообщение об ошибке ниже.
Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «NULL (M.EMPLOYEE_ID,« NO MGR ») AS MGR_ID, CONCAT (M.FIRST_NAME, '', M.LAST_NAME) AS 'в строке 2
SELECT E.EMPLOYEE_ID AS EMP_ID, CONCAT(E.FIRST_NAME,' ',E.LAST_NAME) AS EMP_NAME,
IF NULL(M.EMPLOYEE_ID,'NO MGR') AS MGR_ID
,CONCAT(M.FIRST_NAME,' ',M.LAST_NAME) AS MGR_NAME
FROM EMPLOYEES AS E JOIN EMPLOYEES AS M
ON (E.MANAGER_ID =M.EMPLOYEE_ID) ORDER BY MGR_ID
Нет функции IF NULL в mysql, вы ищете NULLIF – Mihai