所以我正在使用以下查询:
SELECT products.id
, products.Name
, products_orders.productQty
FROM orders
JOIN products_orders
ON orders.id = products_orders.order_id
JOIN products
ON products_orders.product_id = products.id
WHERE orders.id = @OrderId;
@OrderId = 7,我也有一个产品ID,最终我试图在订单中查找单个产品的数量。
当前,这将返回如下表:
+----+-----------+------------+
| id | Name | productQty |
+----+-----------+------------+
| 1 | sourdough | 2 |
| 3 | Ciabatta | 3 |
+----+-----------+------------+
这是订单中的每个项目及其数量,但是我只是想根据第一列中的ID查找单个项目。
有没有一种方法可以缩小这张桌子,只显示我感兴趣的物品和数量?
例如
如果order.id = 7,并且product.id = 3(对于ciabatta,这是其外键) 我想返回一个看起来像这样的派生表,但是我不知道如何编写查询:
+----+-----------+------------+
| id | Name | productQty |
+----+-----------+------------+
| 3 | Ciabatta | 3 |
+----+-----------+------------+
答案 0 :(得分:3)
在查询中添加AND products.id = @ProductId
有什么问题?就像
SELECT products.id
, products.Name
, products_orders.productQty
FROM orders
JOIN products_orders
ON orders.id = products_orders.order_id
JOIN products
ON products_orders.product_id = products.id
WHERE orders.id = @OrderId
AND products.id = @ProductID;