我正在尝试重新创建一个选择查询,以查找特定日期的数据(查找在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”
答案 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);
应该工作。