De eenvoudigste manier om alleen verschillende gegevens in de gewenste kolommen te krijgen, is door GROUP BY
te gebruiken clausule. Standaard worden de rijen gegroepeerd, afhankelijk van de waarde van de kolom, waarbij alleen afzonderlijke waarden worden weergegeven, dus als u alleen verschillende titels en categorieën wilt groeperen en weergeven, moet u uw zoekopdracht als volgt schrijven:
SELECT bk.title AS Title, bk.year AS Year, aut.authorname AS Author, cat.category AS Category
FROM book bk
JOIN book_category bk_cat
ON bk_cat.book_id = bk.bookid
JOIN categories cat
ON cat.id = bk_cat.category_id
JOIN books_authors bk_aut
ON bk_aut.book_id = bk.bookid
JOIN authors aut
ON aut.id = bk_aut.author_id
GROUP BY bk.title, cat.category
ORDER BY bk.title ASC
Zoals je misschien ziet, geen DISTINCT
wordt gebruikt, maar u krijgt alle boeken met een aparte titel en categorieën. Hoe meer velden je hebt toegevoegd aan de GROUP BY
clausule, hoe duidelijker de gegevens u krijgt.
Op dezelfde manier, als u boeken alleen op titel wilt weergeven, moet u alleen bk.title achterlaten in de GROUP BY
clausule