sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Cómo limitar los valores cuando se usa distinto

La forma más fácil de lograr diferentes datos solo en las columnas que desea es usar GROUP BY cláusula. De forma predeterminada, agrupará las filas, según el valor de la columna, mostrando solo valores distintos, por lo que, si desea agrupar y mostrar solo diferentes títulos y categorías, debe escribir su consulta como:

  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

Como puede ver, no DISTINCT se usa, pero obtendrá todos los libros con distintos títulos y categorías. Cuantos más campos haya agregado al GROUP BY cláusula, más datos distintos obtendrá.

De la misma manera, si solo desea listar libros por título, solo debe dejar bk.title en GROUP BY cláusula