Неоднозначное имя столбца
У меня есть следующий 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
Я прочитал несколько статей об этом, но не могу найти рабочего решения для моего кода.
Любая помощь очень ценится.
5 ответов:
Ваш идентификатор предложения WHERE должен быть более конкретным, включая имя таблицы:
WHERE table.id = [PARAM]p_idЕсли две вещи имеют одно и то же имя, то здесь вступает в действие двусмысленность. В этом случае несколько таблиц в SQL содержат столбец "id".
SQL обладает интеллектом для устранения неоднозначности имен столбцов, если имя столбца уникально в текущем наборе таблиц, к которым прикасаются, - следовательно, в большинстве случаев вам не нужно префиксировать имена столбцов именами таблиц.
Скорее всего, несколько таблиц имеют столбец с именем 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