phpMyAdmin
 sql >> Database >  >> Database Tools >> phpMyAdmin

Come limitare i valori quando si utilizza distinto

Il modo più semplice per ottenere dati diversi solo nelle colonne desiderate è utilizzare GROUP BY clausola. Per impostazione predefinita, raggrupperà le righe, a seconda del valore della colonna, mostrando solo valori distinti, quindi, se vuoi raggruppare e mostrare solo titoli e categorie diversi, dovresti scrivere la tua query come:

  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

Come puoi vedere, nessun DISTINCT viene utilizzato, ma otterrai tutti i libri con titoli e categorie distinti. Più campi hai aggiunto nel GROUP BY clausola, più dati distinti otterresti.

Allo stesso modo, se desideri elencare solo i libri per titolo, dovresti lasciare bk.title solo nel GROUP BY clausola