Проводной подзапрос в mysql

У меня есть две таблицы 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

    )

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

Tim Biegeleisen 01.01.2019 06:05

@TimBiegeleisen, посмотрите мое обновление, пожалуйста, оно не подведет ...

Tom 01.01.2019 06:15

Скрипка SQL может помочь воспроизвести это и, надеюсь, даст ответ.

Akber Iqbal 01.01.2019 06:15

Отзыв об ошибке также не соответствует вашим запросам. Вы уверены, что это тот код, который вы действительно используете?

Tim Biegeleisen 01.01.2019 06:17

Я запускаю код, как указано выше, но sql выдает ошибку. см. ссылку mysqltutorial.org/sql-in.aspxmysqltutorial.org/tryit/query/mysql-in/#4

PALLAMOLLA SAI 01.01.2019 06:18

Хм, я думаю, что уже видел этот тип вопросов здесь, на SO.

Shadow 01.01.2019 06:19

@TimBiegeleisen Да, я просто проводил тест, используя другие столбцы, и исправьте свой вопрос сейчас

Tom 01.01.2019 06:20

На этом этапе вам действительно нужно добавить демонстрацию к вашему вопросу. DBFiddle - один из вариантов.

Tim Biegeleisen 01.01.2019 06:21

Я нашел такой же вопрос с ответом на сайте dba: dba.stackexchange.com/questions/218871/…

Shadow 01.01.2019 06:21

Как говорит @Shadow, подзапросы могут ссылаться на столбцы из внешних запросов, особенно если они находятся в предложениях SELECT или WHERE. Вам нужно проверить определения ваших таблиц.

Clockwork-Muse 01.01.2019 06:22

Попался, нашел тот же вопрос здесь, на SO. См. Ссылку на повторяющийся вопрос. Хотя я предпочитаю ответ на сайте DBA.

Shadow 01.01.2019 06:25

Спасибо @Shadow. Пожалуйста, разместите свою ссылку в качестве ответа. Я считаю, что многие люди должны быть удивлены, увидев такое поведение.

Tom 01.01.2019 06:26

@Tom Я уже нашел тот же вопрос здесь, на SO, поэтому забил ваш вопрос как дубликат.

Shadow 01.01.2019 06:28

Конечно, спасибо всем ребятам за помощь, с Новым годом!

Tom 01.01.2019 06:35
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
14
41
0

Другие вопросы по теме