Limit MySQL z wieloma do wielu relacji
Podany SCHEMAT do implementacji tagów
ELEMENT ItemId, ItemContent
TAG TagId, TagName
ITEM_TAG ItemId, TagId
Jak najlepiej ograniczyć liczbę ELEMENTÓW, które mają zostać zwrócone podczas wybierania przy użyciu tagów?
SELECT i.ItemContent, t.TagName FROM item i
INNER JOIN ItemTag it ON i.id = it.ItemId
INNER JOIN tag t ON t.id = it.TagId
jest oczywiście najłatwiejszym sposobem na odzyskanie ich wszystkich, ale użycie klauzuli limitu ulega awarii, ponieważ otrzymujesz duplikat wszystkich elementów dla każdego tagu, który liczy się do liczby wierszy w LIMIT.