2010-04-16 53 views

回答

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

+0

或许余did't让我自己清楚,,我不想拿数量 我想有 warehouseA_id的总和 - warehouseA_quantity - warehouseB_id - warehouseB_quantity - PRODUCT_ID 所以我想采取两行并合并为1,并更改名称 – vegatron 2010-04-16 22:15:38

+0

@vegatron:看到我更新的查询 – RedFilter 2010-04-17 12:40:12

+0

谢谢 我试过了,它并没有在第一次工作 ,但当我删除了“完整的外部”它的工作,但它只向我显示(wh_id = A AND wh_id = B) 以及仅在仓库A中(或仅在B中)的产品的记录 – vegatron 2010-04-17 13:36:11

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,删除它。