2013-10-02 3 views
0

У меня есть таблица продуктов, как этотMySQL выбрать все данные для дочернего элемента

+----------+------+-----------------+-------+-------+ 
| ParentID | SKU |  Name  | Price | Color | 
+----------+------+-----------------+-------+-------+ 
|  1 | qwe | Product 1 Red |  12| Reb | 
|  1 | qaz | Product 1 Blue |  13| Blue | 
|  1 | erf | Product 1 Green |  11| Green | 
|  2 | tgb | Product 2 Black |  12| Black | 
|  2 | yhj | Product 2 White |  12| White | 
|  3 | ujk | Product 3 Red |  15| Red | 
|  3 | kjm | Product 3 Blue |  19| Blue | 
|  3 | gfd | Product 3 Pink |  17| Pink | 
|  3 | vgy | Product 3 White |  16| White | 
|  3 | njk | Product 3 Black |  10| Black | 
|  4 | cfg | Product 4 Red |  12| Red | 
+----------+------+-----------------+-------+-------+ 

Что я хотел бы это запрос, чтобы получить один элемент для каждого ParentID со всей этой информацией пунктов. Я не забочусь, какие конкретные строки, но она должна иметь всю информацию для этой строки и только один за ParentID

мне нужно оставить что-то вроде этого

+----------+------+-----------------+-------+-------+ 
| ParentID | SKU |  Name  | Price | Color | 
+----------+------+-----------------+-------+-------+ 
|  1 | qaz | Product 1 Blue |  13| Blue | 
|  2 | yhj | Product 2 White |  12| White | 
|  3 | gfd | Product 3 Pink |  17| Pink | 
|  4 | cfg | Product 4 Red |  12| Red | 
+----------+------+-----------------+-------+-------+ 

ответ

0

Вы можете попробовать:

Select t.* from table t, 
(select parentId, min(price) as price 
from table 
group by parentId) a 
where t.parentId = a.parentId 
and t.price = a.price 

UPDATE:

SET @rownum := 0; 

select min(b.rank), b.parentID, SKU,Name ,Price, Color from (
select @rownum := @rownum + 1 AS rank, parentID, SKU,Name ,Price, Color 
from t1) b 
group by b.parentID 

Ссылка до fiddle

+0

alfasin, что произойдет, если будет 2 детских предмета по той же цене. Я не думаю, что это сработает. – knowzero

+0

@knowzero в примере, который вы дали там, не было ... – alfasin

+0

@knowzero обновляет мой ответ ... – alfasin

Смежные вопросы