Russian Qt Forum
Декабрь 12, 2018, 05:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО]"ОШИБКА: неоднозначная ссылка на столбец QPsql  (Прочитано 854 раз)
darkfog
Новичок

Offline Offline

Сообщений: 17


Просмотр профиля
« : Май 23, 2018, 21:44 »

Делаю запрос Select Innet Join по нескольким таблицам. Мне нужно получить какие-то поля допусти id и еще что-то, но название столбца "id" в этих таблицах повторяется и вылезает ошибка неоднозначности. И вот главная проблема если я уточняю от какой таблицы я хочу получить id (например type_target.id) то база данных (Postgressql) воспринимает type_target.id не как указатель из какой таблицы брать столбец, а как названия столбца и выдает ошибку "столбец type_target.id не существует".
Как избавиться от неоднозначности?
« Последнее редактирование: Май 23, 2018, 22:42 от darkfog » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3971



Просмотр профиля
« Ответ #1 : Май 23, 2018, 21:47 »

type_target.id AS name_column
Записан
sergek
Программист
*****
Offline Offline

Сообщений: 586


Мы должны приносить пользу людям!


Просмотр профиля
« Ответ #2 : Май 23, 2018, 22:00 »

select t1.id as id1, t2.id as id2 from table1 t1, table2 t2 where...
Записан

Qt 5.11.1 Qt Creator 4.7.2
Win7, Win10, Ubuntu 16.04
darkfog
Новичок

Offline Offline

Сообщений: 17


Просмотр профиля
« Ответ #3 : Май 23, 2018, 22:05 »

type_target.id AS name_column
Я попробовал ваш совет но результат тот же. Я составлю запрос в Qt и передаю его в базу через QSqlQuery query.exec().
Вот запрос который у меня получился. Если id из select убрать все работает.

"SELECT \"type_target.id AS name_column\",\"category\",\"color\",\"type\",\"model_name\",\"id_image\" FROM type_target INNER JOIN categories ON type_target.category_id = categories.id_category JOIN types_goals ON type_target.type_id = types_goals.id_type JOIN models ON type_target.model_id = models.id JOIN images ON type_target.image_id = images.id_image"

"ОШИБКА:  столбец \"type_target.id AS name_column\" не существует\nLINE 1:
Записан
darkfog
Новичок

Offline Offline

Сообщений: 17


Просмотр профиля
« Ответ #4 : Май 23, 2018, 22:09 »

select t1.id as id1, t2.id as id2 from table1 t1, table2 t2 where...

Это то же самое что предложил Old. То что вы предложили работает если данный запрос использовать в самой базе, но через Qt вот такая фигня получается.
Записан
darkfog
Новичок

Offline Offline

Сообщений: 17


Просмотр профиля
« Ответ #5 : Май 23, 2018, 22:41 »

Всем спасибо нашел косяк. Названия столбцов нужно записывать без кавычек.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.203 секунд. Запросов: 22.