sql >> Databasteknik >  >> RDS >> Mysql

Många till många bord gå med pivot

Du måste ange en DISTINCT , dvs.

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

Se MySQL-dokumenten här .

Prova att ändra din fråga till:

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

Detta ger dig en null för alla användare utan program kopplade till dem. För att filtrera bort dem, lägg bara till en WHERE programs.id IS NOT NULL .



  1. MySQL kolumntyp TIMESTAMP inkluderar implicit INTE NULL DEFAULT CURRENT_TIMESTAMP ON UPPDATERING CURRENT_TIMESTAMP

  2. MYSQL - hur man uppdaterar ett fält för alla objekt som härrör från grupp-för-val-sats

  3. Hur man skapar en rapport med rapportguiden i Microsoft Access

  4. Identifiera materialstycksstrukturen (BOM) i databaser