Możesz wyeliminować problemy z wydajnością grupowania i liczenia, jeśli gdzieś przechowujesz te informacje. Możesz dodać kolumnę do produktów o nazwie total_categories
który powie ci, w ilu kategoriach produkt należy. Następnie możesz po prostu powiedzieć where total_categories = 4
. Może to być trudniejsze do utrzymania, jeśli produkty często zmieniają swoje kategorie, ponieważ musisz stale poprawnie aktualizować to pole - a następnie musisz zdecydować, czy chcesz to zrobić w kodzie aplikacji, w wyzwalaczu lub w procedurze składowanej ...
Zwykle nie uważam, że przechowywanie takich metadanych bezpośrednio w tabeli to dobry pomysł, ale jeśli wydajność jest naprawdę tak źle, warto rozważyć.