Неоднозначное имя столбца в SQlite3 при попытке сделать оператор выбора с предложением соединения - PullRequest
0 голосов
/ 07 апреля 2020

Кажется, что sqlite3 нужна дополнительная информация, чтобы указать, откуда вы хотите извлечь определенные столбцы при соединении двух таблиц. Каким-то образом, когда я пытаюсь выполнить оператор выбора с предложением соединения, запрос возвращает:

Error: ambiguous column name: name

, хотя я указал в своем операторе, где я хочу получить столбец «имя» из этот случай из таблицы t1:

select name from t1 join t2 on t1.name = t2.name where beer = 'Alesmith Decadence' and nickname = 'SUP';

Так sqlite3 не понимает этот формат или что-то? Или для sqlite3 необходима дополнительная информация, чтобы понять этот запрос.

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Когда вы пишете запрос, вы должны научиться квалифицировать все имена столбцов - с удобными псевдонимами таблиц. Непонятно, что такое правильные псевдонимы, но что-то вроде этого:

select t1.name
from t1 join
     t2
     on t1.name = t2.name
where t2.beer = 'Alesmith Decadence' and t2.nickname = 'SUP';

Тогда вам и всем остальным ясно, И парсеру SQL точно, на какие столбцы вы ссылаетесь.

Примечание. Вы не показывали пример данных или определения таблиц, поэтому приведенные выше могут не работать, поскольку псевдонимы таблиц могут быть неверными.

1 голос
/ 07 апреля 2020

Попробуйте

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