Cypher
17-08-2007, 12:18
hi,
ich hab in meiner db eine tabelle für bücher, eine für tags die man den büchern über eine tabelle book_tags zuordnen kann.
SELECT tag_name, COUNT(tag_name)
FROM tags INNER JOIN tag_book ON tags.tag_id=tag_book.tag_id INNER JOIN books ON tag_book.book_id=books.book_id
GROUP BY tag_name;
Die Abfrage spuckt mir jetzt alle tags, jeder mit der anzahl an büchern denen er zugeordnet ist, aus.
soweit ist das auch gut, aber ich würde mir gerne aus der liste jetzt noch die tags herausfiltern, die einem bestimmten buch zugeordnet sind.
ich hab es mit folgender abfrage probiert:
ELECT tag_name, COUNT(tag_name)
FROM tags INNER JOIN tag_book ON tags.tag_id=tag_book.tag_id INNER JOIN books ON tag_book.book_id=books.book_id
WHERE books.book_id=2
GROUP BY tag_name;
aber dann bringt er mir für die jeweilige anzahl von zuweisungen (eigendlich logischerweise) immer 1.
weiß jemand eine lösung für das problem?
thx, cypher
ich hab in meiner db eine tabelle für bücher, eine für tags die man den büchern über eine tabelle book_tags zuordnen kann.
SELECT tag_name, COUNT(tag_name)
FROM tags INNER JOIN tag_book ON tags.tag_id=tag_book.tag_id INNER JOIN books ON tag_book.book_id=books.book_id
GROUP BY tag_name;
Die Abfrage spuckt mir jetzt alle tags, jeder mit der anzahl an büchern denen er zugeordnet ist, aus.
soweit ist das auch gut, aber ich würde mir gerne aus der liste jetzt noch die tags herausfiltern, die einem bestimmten buch zugeordnet sind.
ich hab es mit folgender abfrage probiert:
ELECT tag_name, COUNT(tag_name)
FROM tags INNER JOIN tag_book ON tags.tag_id=tag_book.tag_id INNER JOIN books ON tag_book.book_id=books.book_id
WHERE books.book_id=2
GROUP BY tag_name;
aber dann bringt er mir für die jeweilige anzahl von zuweisungen (eigendlich logischerweise) immer 1.
weiß jemand eine lösung für das problem?
thx, cypher