Cara termudah untuk mendapatkan data yang berbeda hanya di kolom yang Anda inginkan adalah menggunakan GROUP BY
ayat. Secara default, ini akan mengelompokkan baris, bergantung pada nilai kolom, hanya menampilkan nilai yang berbeda, jadi, jika Anda ingin mengelompokkan dan hanya menampilkan judul dan kategori yang berbeda, Anda harus menulis kueri sebagai:
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
Seperti yang Anda lihat, tidak ada DISTINCT
digunakan, tetapi Anda akan mendapatkan semua buku dengan judul dan kategori yang berbeda. Semakin banyak bidang yang Anda tambahkan ke GROUP BY
klausa, semakin banyak data berbeda yang akan Anda dapatkan.
Cara yang sama, jika Anda hanya ingin daftar buku berdasarkan judul, Anda hanya harus meninggalkan bk.title di GROUP BY
klausa