Ошибка # 1066 - не уникальная таблица / псевдоним в MySQL - PullRequest
1 голос
/ 20 июня 2020

Добрый день, пытаюсь выполнить запрос при написании ошибки. Ошибка №1066 не совсем понимает, как ее исправить в моем конкретном случае. Возможно проблема в том, что я подключаюсь к таблице несколько раз и мне нужен псевдоним.

SELECT `employees`.`name`, `employees`.`surname`, `employees`.`patronymic`,
       `doc`.`name`, `doc`.`agreement`, `tank`.`name`, 
       `liquid`.`name`, `WorkPlan`.`description`
FROM `WorkPlan` , `employees` , `doc` , `tank` , `liquid`
LEFT JOIN `WorkPlan` ON `tank`.`id` = `WorkPlan`.`id_tank` 
LEFT JOIN `WorkPlan` ON `liquid`.`id` = `WorkPlan`.`id_liquid` 
LEFT JOIN `WorkPlan` ON `doc`.`id` = `WorkPlan`.`id_doc` 
AND `WorkPlan`.`id_tank` = `tank`.`id`  
AND `WorkPlan`.`id_liquid` = `liquid`.`id`  
AND `WorkPlan`.`id_doc` = `doc`.`id` 

1 Ответ

0 голосов
/ 20 июня 2020

Я подозреваю (по вашему списку SELECT столбцов), что вы хотите присоединить employees к другим таблицам. Для каждого соединения вы должны указать в предложении ON столбцы, которые связывают две таблицы, и рекомендуется использовать псевдонимы для таблиц, которые сокращают код и делают его более читаемым:

SELECT e.name, e.surname, e.patronymic,
       d.name, d.agreement, 
       t.name, 
       l.name, 
       w.description
FROM employees e
LEFT JOIN WorkPlan w ON e.? = w.? 
LEFT JOIN tank t ON t.id = w.id_tank 
LEFT JOIN liquid l ON l.id = w.id_liquid 
LEFT JOIN doc d ON d.id = w.id_doc 

Замените ? именами столбцов, которые связаны с employees на WorkPlan.

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