Ich habe 3 mysql Tabellen (Tier, Kategorie und Tier_2_Kategorie). Jedes Tier kann 0-n Kategorien haben (zum Beispiel Fisch, Haustier, Insekt, Fleischfresser, "kann fliegen", etc.).
Tabelle "animal" (ID, Name)
%Vor%Tabelle "Kategorien" (ID, Name)
%Vor%Tabelle "animal_2_category" (animal_id, category_id)
%Vor%Was ich jetzt brauche, ist eine Liste aller Kategorienkombinationen. Die folgende Abfrage funktioniert:
%Vor%Diese Abfrage gibt Folgendes zurück:
Das Problem dabei ist, dass ich die Einträge "Pet-Säugetier" und "Säugetier-Pet" doppelt erhalte. Wie kann ich die Abfrage ändern, um nur eine davon zu erhalten, zum Beispiel:
Eine Möglichkeit, doppelte Paare zu vermeiden, besteht darin, sicherzustellen, dass Ihre Paare immer in der gleichen Reihenfolge erstellt werden. Wir können das tun, indem Sie Ihr Paar in einer if-Anweisung zusammenfassen, die die beiden Werte für uns effektiv sortiert. Dann greifen wir einfach die einzelnen Zeilen.
%Vor%Alternativ können Sie in den Join-Kriterien auch selektiver vorgehen, damit sie nur in einer bestimmten Reihenfolge beitreten. Dies vermeidet das if, aber wir müssen noch die verschiedenen Werte erfassen.
%Vor%Wie auch immer, die Ergebnisse sind die gleichen.