Pobranie 1 produktu z jednej kategorii przy relacji many to one

0

struktura:

category
id | name
1 | category
2 | category2

product
id | name | category_id
1 | p1 | 1
2 | p2 | 1
3 | p3 | 2
4 | p4 | 2

moje oczekiwania to wynik produktów tylko z jednej kategorii czyli np. p1,p3 chodzi tylko o unikalność kategoria -> produkt, oczywiście nie znając id kategorii które są w bazie.

1

Piszesz o produktach z jednej kategorii a podajesz przykład z dwóch kategorii...
Podejrzewam, że chodzi Ci o to że chcesz wybrać po jednym produkcie z każdej kategorii, łatwiej by było jakbyś podał silnik z którego korzystasz.

"Uniwersalne" rozwiązanie:

SELECT
  category_id
  ,max(name)
FROM
   product
group by
   category_id
0

silnik MySQL, a coś wydajniejszego niż użycie grupowania ?

0
Krwawy Kot napisał(a):

silnik MySQL, a coś wydajniejszego niż użycie grupowania ?

tak mówisz: "abrakadabra" i walisz losowe rekordy

jeśli twoja baza stoi na jakimś diabelnie słabym serwerze i końcówka, z której się łączysz (np twój PC) jest meeega szybsza to możesz sobie pobrać całą tabele do pamięci i posortować/pogrupować używając jakiegoś mega szybkiego algorytmu.
Jeśli natomiast serwer jest ok i group by trwa u ciebie za długo to na 99% masz źle zaprojektowaną bazę i przy grupowaniu serwer nie wyrabia.
Niestety nie podając ddl, nie podając zapytania konkretnego nie da się stwierdzić czy jest coś wydajniejszego niż group by ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1