Почему мое левое соединение не работает в моей базе данных php mysql?

Я думаю, что самый простой способ фильтрации тегов html:

private static final Pattern REMOVE_TAGS = Pattern.compile("<.+?>");

public static String removeTags(String string) {
    if (string == null || string.length() == 0) {
        return string;
    }

    Matcher m = REMOVE_TAGS.matcher(string);
    return m.replaceAll("");
}
1
задан GMB 31 March 2019 в 00:40
поделиться

1 ответ

SELECT id_service

Обе таблицы, участвующие в запросе, имеют столбец с именем id_service. Поскольку вы не указали префикс имени столбца, MySQL не может достоверно определить, какое из двух значений вы имеете в виду, поэтому возникает ошибка «неоднозначное имя столбца».

Поскольку вы используете LEFT JOIN, весьма вероятно, что вы захотите вернуть столбец из таблицы CHOSEN_SERVICES (так как другой столбец может быть NULL, когда условие соединения не соответствует). [1112 ]

Обратите внимание:

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 = ?
0
ответ дан GMB 31 March 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: