Russian Qt Forum

Qt => Базы данных => Тема начата: darkfog от Май 23, 2018, 21:44



Название: [РЕШЕНО]"ОШИБКА: неоднозначная ссылка на столбец QPsql
Отправлено: darkfog от Май 23, 2018, 21:44
Делаю запрос Select Innet Join по нескольким таблицам. Мне нужно получить какие-то поля допусти id и еще что-то, но название столбца "id" в этих таблицах повторяется и вылезает ошибка неоднозначности. И вот главная проблема если я уточняю от какой таблицы я хочу получить id (например type_target.id) то база данных (Postgressql) воспринимает type_target.id не как указатель из какой таблицы брать столбец, а как названия столбца и выдает ошибку "столбец type_target.id не существует".
Как избавиться от неоднозначности?


Название: Re: "ОШИБКА: неоднозначная ссылка на столбец QPsql
Отправлено: Old от Май 23, 2018, 21:47
type_target.id AS name_column


Название: Re: "ОШИБКА: неоднозначная ссылка на столбец QPsql
Отправлено: sergek от Май 23, 2018, 22:00
select t1.id as id1, t2.id as id2 from table1 t1, table2 t2 where...


Название: Re: "ОШИБКА: неоднозначная ссылка на столбец QPsql
Отправлено: darkfog от Май 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:


Название: Re: "ОШИБКА: неоднозначная ссылка на столбец QPsql
Отправлено: darkfog от Май 23, 2018, 22:09
select t1.id as id1, t2.id as id2 from table1 t1, table2 t2 where...

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


Название: Re: "ОШИБКА: неоднозначная ссылка на столбец QPsql
Отправлено: darkfog от Май 23, 2018, 22:41
Всем спасибо нашел косяк. Названия столбцов нужно записывать без кавычек.