选择将类似行与某些ID组合在一起的语句?

时间:2010-04-16 19:02:20

标签: mysql select merge field

我有一个warehouse_products表,用于定义仓库中的产品数量

所以假设我在表中有20条记录/行,有些行可能包含相同的产品ID,但在不同的仓库中

我需要创建select语句,为每个产品提供一行,在这一行中,我必须拥有仓库A和仓库B中的数量。

所以最后我将获得包含所有数据的10行

alt text http://img199.imageshack.us/img199/1948/stackoverflow.jpg

2 个答案:

答案 0 :(得分:0)

这样的事情:

SELECT id, domain_id, wh_product_id, SUM(item_bom.qty_bom) qty_total
FROM warehouse_products GROUP BY id, domain_id, wh_product_id

您将无法显示 warehouse_id 。也不是 wh_product_id ,我猜 - 我把它包含在这里,但如果有20行而不是10行,请将其删除。

答案 1 :(得分:0)

select p1.wh_id as whA_id, p2.wh_id as whB_id, 
    coalesce(p1.p_id, p2.p_id) as p_id, p1.qty as qty_A, 
    p2.qty as qty_B, coalesce(p1.enabled, p2.enabled) as enabled
from warehouse_products p1
full outer join warehouse_products p2 on p1.p_id = p2.p_id
    and p1.wh_id = 'A' and p2.wh_id = 'B'

<强>更新

我忘了MySql不支持FULL OUTER JOIN。我现在没有时间更新查询,但有一些示例说明如何获得相同的结果here