Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wiele do wielu stołów łączy się z Pivot

Musisz określić DISTINCT , czyli

select users.name, group_concat( DISTINCT programs.name)

Zobacz dokumentację MySQL tutaj .

Spróbuj zmienić zapytanie na:

SELECT users.name, group_concat(programs.name) 
from users
LEFT JOIN linker on linker.user_id = users.id
LEFT JOIN programs on linker.program_id = programs.id
GROUP BY users.id

To da ci null dla każdego użytkownika bez powiązanych z nim programów. Aby je odfiltrować, po prostu dodaj WHERE programs.id IS NOT NULL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO::fetch() LIMIT 1

  2. Czy INSERT IGNORE blokuje tabelę, nawet jeśli ignoruje wstawianie?

  3. Czy rozwijane wybrane pola są podatne na wszelkiego rodzaju wstrzyknięcia?

  4. Codeigniter Select_Sum zwraca tablicę, a nie wartość liczbową?

  5. Ostatni indeks danego podciągu w MySQL