2015-09-02 74 views
0

繼取得列信息是表:原始SQL查詢/ Django的查詢:通過分組

Product Table 
25 Tshirt 
26 Dress 

ProductVariation Table 
id product_id variation_id vendor_id 
46 26    47  1 
47 26    48  1 
48 26    49  1 
49 27    50  1 

Variation Table 
id value attribute_id  category_id  variationinfo_id 
47 Female  2    1    17 
48 89   3    1    17 
49 90   1    1    18 
50 #343434  2    1    18 

VariationInfo Table 
id stock remarks 
17 8  remarks1 
18 10 remarks2 

Attribute Table 
id attribute_name 
1 size 
2 color 
3 gender 

Category Table 
id name parent remarks 
1 bla bla bla 

問題場景: 產品26 variation_ids 47,48,49,其中,47和48具有相同的variationinfo_id對於產品26,獲得的總庫存信息爲18.

但是,我需要獲取不同變異信息的分佈式庫存信息,例如:對於變異(VariationTable)47,48具有相同變體infoinfo_id爲17,此變體的總存量 - > 8,並且對於變體info_id爲18的48,該變量的總存量012>

如何爲後者編寫查詢?

+0

請在輸出中指定字段。 – seahawk

+0

更新了問題。 – tilaprimera

回答

0
select temp.product_id,temp.variation_ids,temp.variationinfo_id,vi.stock 
(select p.product_id,group_concat(v.id) as variation_ids, v.variationinfo_id 

from ProductVariation p 
join Variation v on p.variation_id=v.id 

group by p.product_id,v.variationinfo_id) temp 

join VariationInfo vi on temp.variationinfo_id=vi.id 

注意:代碼未經測試。可能存在小的語法錯誤。