phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Como limitar valores ao usar distintos


A maneira mais fácil de obter dados diferentes apenas nas colunas desejadas é usando GROUP BY cláusula. Por padrão, ele agrupará as linhas, dependendo do valor da coluna, mostrando apenas valores distintos, portanto, se você deseja agrupar e mostrar apenas títulos e categorias diferentes, deve escrever sua 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 você pode ver, não há DISTINCT é usado, mas você obterá todos os livros com títulos e categorias distintos. Quanto mais campos você adicionar ao GROUP BY cláusula, mais dados distintos você obteria.

Da mesma forma, se você quiser apenas listar livros por título, você deve deixar apenas bk.title no GROUP BY cláusula