我有3个表内使用条件:MySQL的 - 从选择
- 订单:
- orders_id
- date_purchased
- ...
- orders_products:
- orders_products_id
- orders_id
- products_id
- products_name
- products_quantity
- ...
- products_warehouses:
- products_id
- warehouses_id
- product_quantity_in_warehouse
现在我想用下面信息的表格:
- CURRENT_DATE
- products_id
- products_name
- warehouses_id
- current_quantity_in_warehouse
- 溶胶d_yesterday
我已经走到这一步了以下内容:
SELECT DISTINCT CURRENT_DATE AS `date`
orpr.products_id AS products_id
orpr.products_name AS products_name
pwq.warehouses_id AS warehouses_id
pwq.products_quantity AS current_quantity_in_warehouse
( SELECT SUM(orpr.products_quantity)
FROM `products_warehouses` wpq
INNER JOIN `orders_products` orpr ON pwq.products_id = orpr.products_id
INNER JOIN `orders` or ON orpr.orders_id = or.orders_id
WHERE pwq.products_id = ??
AND pwq.warehouses_id = ??) AS sold_yeserday
FROM `orders_products` orpr
INNER JOIN `orders` or ON orpr.orders_id = or.orders_id
INNER JOIN `products_warehouses pwq ON pwq.products_id = orpr.products_id;
我要的是在??的的products_id的地方,warehouses_id simular到结果的每一行。
如果有人得到了一个更容易exmaple如何使用选择内select(内部选择使用where-condition id从选择其中,这会改变每一行当然),这也很好,作为只要我能重现这个例子来解决我的问题。
由于提前,
格尔茨, 凯文ç
这听起来像一个相关的子查询,它有一些性能问题。将它转换为一个连接可能会更容易:'JOIN(SELECT products_id,warehouses_id,SUM(products_quantity)GROUP BY products_id,warehouses_id)'。 – DCoder
我们可否预览您的预期输出的一些虚拟数据?并且如果可能,请在[sqlfiddle](http://sqlfiddle.com/)上显示当前进度的示例谢谢 – Killrawr
http://ideone.com/5sb68由于SQL-fiddle只允许8000个或更少的字符,因此我将插入内容发布到ideone上.COM。我为我的问题删除了所有不需要的数据,并且由于隐私原因更换了产品名称。 (16206和2应该用该行的当前ID替换)。 –