SELECT id_service
Обе таблицы, участвующие в запросе, имеют столбец с именем id_service
.Поскольку вы не указали префикс имени столбца, MySQL не может достоверно определить, какое из двух значений вы имеете в виду, поэтому возникает ошибка «неоднозначное имя столбца».
Поскольку вы используете LEFT JOIN
, весьма вероятно, чтовы хотите вернуть столбец из таблицы CHOSEN_SERVICES
(поскольку другой столбец может быть NULL
, если условие соединения не совпадает).
Обратите внимание:
SELECT CHOSEN_SERVICES.id_service
FROM CHOSEN_SERVICES
LEFT JOIN SERVICES ON CHOSEN_SERVICES.id_chosen_service = SERVICES.id_service
WHERE id_reservation = ?
Примечание: обратите внимание, что столбец id_reservation
в предложении WHERE
не является префиксом.Хотя это не приведет к возникновению одной и той же ошибки (поскольку этот столбец существует только в одной из двух таблиц), рекомендуется использовать префиксы всегда с префиксами, когда задействованы несколько таблиц.Еще одна полезная привычка - использовать псевдонимы таблиц.
Соответственно, вот новая версия вашего запроса:
SELECT cs.id_service
FROM chosen_services cs
LEFT JOIN services s ON cs.id_chosen_service = s.id_service
WHERE cs.id_reservation = ?