Как создать представление в PostgreSQL?

Создаю представление в PgAdmin4 с запросом такого вида:
SELECT *, (workers.name || ' '::text) || workers.last_name AS worker_fio, (clients.name || ' '::text) || clients.last_name AS client_fio from pacts JOIN orders ON pacts.id_order = orders.id_order JOIN workers ON pacts.id_worker = workers.id_worker JOIN clients ON pacts.id_customer = clients.id_customer ORDER BY id_pact;


И получаю следующую ошибку:
ERROR: ОШИБКА: столбец "id_customer" указан неоднократно

SQL-состояние: 42701


При этом в обычном запросе всё работает и данные выводятся. В чём моя ошибка?
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
id_customer в запросе с * подтягивается из двух разных таблиц. Для обычного селекта это ещё работает - в выводе будет 2 столбца id_customer. В представлении, как и в обычной таблице, не может быть 2 одноимённый столбца.
Нужно убрать * и указать явно, какие столбцы должны присутствовать в представлении.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы