[C#] Usuwanie wierszy z DataGridView w oparciu o parametr

Witam. Pobieram sobie dane o produktach do datagridview. W systemie opencart każdy produkt może mieć kilka kategorii, mi chodzi o zostawienie w dataGridView tylko tej ostatniej (ostatnie dziecko?). Obecnie w sklepie mam 7000 produktów, zaś pobranych rekordów ponad 18000. Chcę usunąć niepotrzebne wiersze, jednak nie mam pomysłu jak się za to zabrać…

 

Przykład:

*) product_id=20 | category_id=14

*) product_id=20 | category_id=26

*) product_id=20 | category_id=130

 

Chciałbym usunąć wiersze, gdzie “category_id” to 14 i 26, czyli innymi słowy zostawić tylko wiersz, gdzie category_id jest największe dla danego product_id. Jakieś pomysły?

Witam,

 

A coś takiego Ci nie wystarczy?

 

SELECT p.* FROM product p INNER JOIN (SELECT product_id, MAX(category_id) FROM product_to_category GROUP BY product_id) AS tmp ON p.product_id = tmp.product_id ORDER BY p.product_id ASC

Pozdrawiam,

 

mr-owl