原始SQL查询/ django查询:通过分组获取列信息

时间:2015-09-02 06:39:42

标签: mysql

以下是表格:

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具有变量_ 47,48,49。其中,47和48具有相同的变量info_id 17,另外49具有18.对于产品26,总库存信息获得为18.

但是,我需要获取不同的variationinfo_ids的分布式股票信息,例如:对于变量(VariationTable)47,48,具有相同的variationinfo_id为17,该变化的总存量 - >对于变量info_id为18的8和48,该变化的总存量 - > 10.

如何为后一部分编写查询?

1 个答案:

答案 0 :(得分: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 

注意:代码未经过测试。可能存在小的句法错误。