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

So begrenzen Sie Werte bei Verwendung von unique

Der einfachste Weg, unterschiedliche Daten nur in den gewünschten Spalten zu erhalten, ist die Verwendung von GROUP BY Klausel. Standardmäßig werden die Zeilen abhängig vom Wert der Spalte gruppiert und nur unterschiedliche Werte angezeigt. Wenn Sie also gruppieren und nur unterschiedliche Titel und Kategorien anzeigen möchten, sollten Sie Ihre Abfrage wie folgt schreiben:

  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

Wie Sie vielleicht sehen, kein DISTINCT verwendet wird, aber Sie erhalten alle Bücher mit unterschiedlichen Titeln und Kategorien. Je mehr Felder Sie in GROUP BY hinzugefügt haben -Klausel, desto eindeutigere Daten erhalten Sie.

Wenn Sie Bücher nur nach Titel auflisten möchten, sollten Sie auf die gleiche Weise nur bk.title in GROUP BY belassen Klausel