У меня есть две таблицы Recipes и Ingredients, и у меня есть простой подзапрос:
SELECT
RecipeTitle
FROM
Recipes
WHERE
Recipes.RecipeID IN (
SELECT
RecipeID
FROM
Ingredients
)
Интересно, почему в приведенном выше sql нет проблем, потому что у Ingredients нет столбца RecipeID, поэтому, когда я запускаю следующий запрос:
SELECT
RecipeID
FROM
Ingredients
Возникает ошибка при сообщении Unknown column 'RecipeID' in 'field list'.
Обновите здесь:
Это не приведет к отключению Unknown column 'RecipeID' in 'field list', как показано ниже:
SELECT
RecipeTitle
FROM
Recipes
WHERE
Recipes.RecipeID/*1*/ IN (
SELECT
RecipeID /*no problem if this is the same as 1 in above line*/
FROM
Ingredients
)
@TimBiegeleisen, посмотрите мое обновление, пожалуйста, оно не подведет ...
Скрипка SQL может помочь воспроизвести это и, надеюсь, даст ответ.
Отзыв об ошибке также не соответствует вашим запросам. Вы уверены, что это тот код, который вы действительно используете?
Я запускаю код, как указано выше, но sql выдает ошибку. см. ссылку mysqltutorial.org/sql-in.aspxmysqltutorial.org/tryit/query/mysql-in/#4
Хм, я думаю, что уже видел этот тип вопросов здесь, на SO.
@TimBiegeleisen Да, я просто проводил тест, используя другие столбцы, и исправьте свой вопрос сейчас
На этом этапе вам действительно нужно добавить демонстрацию к вашему вопросу. DBFiddle - один из вариантов.
Я нашел такой же вопрос с ответом на сайте dba: dba.stackexchange.com/questions/218871/…
Как говорит @Shadow, подзапросы могут ссылаться на столбцы из внешних запросов, особенно если они находятся в предложениях SELECT или WHERE. Вам нужно проверить определения ваших таблиц.
Попался, нашел тот же вопрос здесь, на SO. См. Ссылку на повторяющийся вопрос. Хотя я предпочитаю ответ на сайте DBA.
Спасибо @Shadow. Пожалуйста, разместите свою ссылку в качестве ответа. Я считаю, что многие люди должны быть удивлены, увидев такое поведение.
@Tom Я уже нашел тот же вопрос здесь, на SO, поэтому забил ваш вопрос как дубликат.
Конечно, спасибо всем ребятам за помощь, с Новым годом!






Невозможно. Если в таблице
Ingredientsдействительно нет столбца с именемRecipeID, то оба запроса должны завершиться ошибкой.