phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Comment limiter les valeurs lors de l'utilisation de distinct

Le moyen le plus simple d'obtenir des données différentes uniquement dans les colonnes souhaitées consiste à utiliser GROUP BY clause. Par défaut, il regroupera les lignes, en fonction de la valeur de la colonne, en n'affichant que des valeurs distinctes. Par conséquent, si vous souhaitez regrouper et afficher uniquement différents titres et catégories, vous devez écrire votre requête comme :

  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

Comme vous pouvez le voir, aucun DISTINCT est utilisé, mais vous obtiendrez tous les livres avec des titres et des catégories distincts. Plus vous ajoutez de champs dans le GROUP BY clause, plus vous obtiendrez des données distinctes.

De la même manière, si vous ne vouliez lister les livres que par titre, vous ne devriez laisser que bk.title dans le GROUP BY clause