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

Waarden beperken bij gebruik van distinct

De eenvoudigste manier om alleen verschillende gegevens in de gewenste kolommen te krijgen, is door GROUP BY te gebruiken clausule. Standaard worden de rijen gegroepeerd, afhankelijk van de waarde van de kolom, waarbij alleen afzonderlijke waarden worden weergegeven, dus als u alleen verschillende titels en categorieën wilt groeperen en weergeven, moet u uw zoekopdracht als volgt schrijven:

  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

Zoals je misschien ziet, geen DISTINCT wordt gebruikt, maar u krijgt alle boeken met een aparte titel en categorieën. Hoe meer velden je hebt toegevoegd aan de GROUP BY clausule, hoe duidelijker de gegevens u krijgt.

Op dezelfde manier, als u boeken alleen op titel wilt weergeven, moet u alleen bk.title achterlaten in de GROUP BY clausule



  1. SSMS staat dubbele records in een tabel toe, maar geen latere updates

  2. Kan geen waarde naar sleutel schrijven \SOFTWARE wordt weergegeven voor SSMS-installatie op een Windows 7-machine met een beheerdersaccount

  3. MySql Gegevens laden Lokale syntaxis?

  4. MAMP MySQL Kan geen verbinding maken:ongeldige instellingen.