Ich erstelle ein Buch-Tagging-System (das sicherlich schon viele Male gemacht wurde) und ich möchte eine Ansicht
erstellen, die mir jedes Buch mit den Namen seiner Tags
liefert.
Ich habe drei Tabellen:
-
bücher ( id, name)
-
tags (id, name)
-
bookTags (id, buch, tag)
Und ich möchte eine Ansicht haben
- booksInfo (bücher.id, bücher.name, [durch Kommata getrennte-
tags.name
s], [tagids])
Mit meiner aktuellen Ansicht
(im untenstehenden SQL-Fiddle), erhalte ich doppelte Zeilen, eine für jedes Tag-Buch-Paar.
Ich würde gerne etwas wie das hier bekommen:
BUCHID NAME TAGS TAGIDS
------ ----------- -------------------- ---------
1 1984 Dystopisch, Politisch 3, 4
2 Weißer Fang Hunde, Natur 5, 9
3 Bibel Religion, Geschichte 6, 10
4 1776 Politisch, Geschichte 4, 10
Ich habe hier ein SQLFiddle erstellt: http://sqlfiddle.com/#!2/74b57/1/0
Ich könnte das mit PHP nach meinem select machen, dann durchgehen und ein separates Array erstellen, aber das scheint unnötig. Ich finde mit MySQL gibt es fast immer einen Weg, etwas abzufragen.