来自查询的结果作为MySQL中WHERE语句的参数(Results from query as argument for WHERE statement in MySQL)
我有两个表:订单和订单产品。 他们都有一个名为'order_id'的列。
订单有一个名为'date_created'的订单。ordersProducts有一个名为'SKU'的列
我想在日期范围内选择SKU。
我到目前为止的查询是:
SELECT `SKU` FROM `orderProducts` INNER JOIN orders ON orderproducts.order_id = orders.order_id WHERE orders.order_id in (SELECT id FROM orders WHERE date_created BETWEEN '2014-10-01' AND '2015-03-31' ORDER BY date_created DESC)查询运行但它返回nothings。 我在这里想念的是什么?
I have two tables: orders and orderProducts. They both have a column called 'order_id'.
orders has a column named 'date_created' ordersProducts has a column named 'SKU'
I want to SELECT SKUs in within a date range.
My query so far is:
SELECT `SKU` FROM `orderProducts` INNER JOIN orders ON orderproducts.order_id = orders.order_id WHERE orders.order_id in (SELECT id FROM orders WHERE date_created BETWEEN '2014-10-01' AND '2015-03-31' ORDER BY date_created DESC)The query runs but it returns nothings. What am I missing here?
最满意答案
尝试将date条件放在where子句中,不需要子查询:
select op.`SKU` from `orderProducts` op join `orders` o using(`order_id`) where o.`date_created` between '2014-10-01' and '2015-03-31'Try putting date condition in the where clause, there is no need for the subquery:
select op.`SKU` from `orderProducts` op join `orders` o using(`order_id`) where o.`date_created` between '2014-10-01' and '2015-03-31'更多推荐
发布评论