не соответствует синтаксису вложенного запроса select - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь воссоздать выбранный запрос, чтобы найти данные за определенную дату (найти имена клиентов, которые сделали заказ в апреле 1997 г.)

Сделанный мною запрос на соединение работал, но когда он выполнен с использованием вложенного запроса select, тот же синтаксис не работает.

Это проблема с моим синтаксисом? или же вложенные запросы следуют другим правилам синтаксиса.

Код, который работает:

SELECT c.customer_code
FROM CUSTOMER_TABLE c JOIN ORDERS o ON c.customer_code = o.customer_code
WHERE order_date BETWEEN 19970331 AND 19970501;

Второй запрос, который дает мне синтаксическую ошибку (ошибка где ... во вложенном запросе)

SELECT c.customer_code
FROM CUSTOMER_TABLE c 
WHERE c.customer_code IN (SELECT customer_code
                           FROM order 
                           WHERE order_date BETWEEN 19970331 AND 
                           19970501);

Я ожидал бы, что это будет работать так же, но вместо этого я получаю сообщение об ошибке 1064 в строке "ГДЕ order_date МЕЖДУ 19970331 И 19970501)"

1 Ответ

0 голосов
/ 10 мая 2019

Вы объединяетесь с order во втором запросе, который на самом деле orders в первом запросе,

SELECT c.customer_code
FROM CUSTOMER_TABLE c 
WHERE c.customer_code IN (SELECT customer_code
                           FROM ORDERS
                           WHERE order_date BETWEEN 19970331 AND 
                           19970501);

Должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...