Меню Закрыть

Ambiguous column name model

Содержание

При отладке программ неизбежно обнаруживаются разнообразные ошибки. Рассмотрим некоторые типичные ситуации при работе в Query Analyzer.

Команда: Ошибка: Объяснение: Синтаксическая ошибка, пропущена буква в слове SELECT.
Команда: Ошибка: Объяснение: В команде вставки в списке полей перечислены два поля, а в списке значений — три значения.
Команда: Ошибка: Объяснение: Нельзя указывать явное значение для поля, у которого установлено свойство IDENTITY, т.е., для поля firm_num.
Команда: Ошибка: Объяснение: Нарушено ограничение внешнего ключа: мы пытаемся вставить ссылку на несуществующий отдел с номером 4.
Команда: Ошибка: Объяснение: Нарушено ограничение внешнего ключа: мы пытаемся удалить договор с номером 1, а к этому договору привязаны счета в таблице k_bill.
Команда: Ошибка: Объяснение: По умолчанию в SQL Server даты записываются в американском формате: месяц/день/год.
Команда: Ошибка: Объяснение: Если используются агрегирующие функции без группировки, в списке полей могут присутствовать только агрегирующие функции.
Команда: Ошибка: Объяснение: Если в нескольких таблицах, используемых в запросе, есть поля с одинаковыми названиями, то для обращения к таким полям следует использовать синтаксис имя_таблицы.имя_поля или псевдоним.имя_поля.
Команда: Ошибка: Объяснение: Нельзя использовать арифметические операции сравнения с подзапросом, если подзапрос возвращает несколько строк. Следует использовать ключевые слова ALL, ANY или EXISTS.
Команда: Ошибка: Объяснение: Длина значения в строковом поле не должна превышать длину поля, заданную при создании таблицы. На главную страницу

I am trying to join two columns and getting the error:

it returns the first record.

However this doesn’t:

I am getting the error above.

What am I doing wrong?

The model for reference (in Python with SqlAlchemy):

1 Answer 1

don’t mix implicit join and explict join .. use an inner join with proper On clause for a join

you have ambiguous column name because you have the column id in both the table for avoid this you need alias eg:

Читайте также:  Как заработать на сборке компьютеров

Not the answer you’re looking for? Browse other questions tagged sql or ask your own question.

Related

Hot Network Questions

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.1.10.35756

I have the following SQL and it throws the error Ambiguous column name ‘id’

I’ve read some articles on this, but can’t find a working solution for my code. Any help much appreciated.

5 Answers 5

Your WHERE clause id needs to be more specific, include the table name:

If two things share the same name, this is where the ambiguity steps in. In this case multiple tables in your SQL contain the "id" column.

SQL has the intelligence to disambiguate column names if the column name is unique across the current set of tables being touched — hence most of the time you don’t need to prefix column names with table names.

most likely more than one table has a column named id; use a table prefix in the where clause

Have you tried prefixing the id column name in the where clause?

It’s referring to "id" in your where clause. You need to specify which table’s "id" it should filter.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.