Неоднозначное имя столбца



У меня есть следующий SQL, и он выдает ошибку неоднозначное имя столбца ' id '



select tbl_registration.*, tbl_ebp.name as ebp_name, tbl_Users.id as user_id, tbl_ebp.id as linked_ebp_id
from tbl_registration
left outer join tbl_ebp on tbl_ebp.id = tbl_registration.ebp_id
left outer join tbl_users on tbl_registration.email = tbl_users.username
where id = [PARAM]p_id


Я прочитал несколько статей об этом, но не могу найти рабочего решения для моего кода.
Любая помощь очень ценится.

956   5  
sql

5 ответов:

Ваш идентификатор предложения WHERE должен быть более конкретным, включая имя таблицы:

WHERE table.id = [PARAM]p_id

Если две вещи имеют одно и то же имя, то здесь вступает в действие двусмысленность. В этом случае несколько таблиц в SQL содержат столбец "id".

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

Скорее всего, несколько таблиц имеют столбец с именем id; используйте префикс таблицы в предложении where

Вы пробовали добавить префикс имени столбца id в предложении where?

Это относится к " id " в вашем предложении where. Вам нужно указать, какой "id" таблицы он должен фильтровать.

Я заменил ваш код

select *, tbl_ebp.name as ebp_name, tbl_Users.id as user_id, tbl_ebp.id as linked_ebp_id
from tbl_registration
left outer join tbl_ebp on tbl_ebp.id = tbl_registration.ebp_id
left outer join tbl_users on tbl_registration.email = tbl_users.username
where your_respective_tblname.id = your_respective_tblname.[PARAM]p_id

Comments

    Ничего не найдено.