嵌套选择查询语法不一致

时间:2019-05-10 13:48:43

标签: mysql sql

我正在尝试重新创建一个选择查询,以查找特定日期的数据(查找在1997年4月下订单的客户的姓名)

我执行的联接查询有效,但是使用嵌套选择查询完成时,相同的语法不起作用。

我的语法有问题吗?或者嵌套查询遵循不同的语法规则。

有效的代码:

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);

我希望它能以相同的方式工作,但是我在“ WHERE order_date 19970331 AND 19970501)行中收到错误1064”

1 个答案:

答案 0 :(得分:0)

您要在第二个查询中与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);

应该工作。