sql >> Databasteknik >  >> RDS >> Mysql

Hur man väljer kolumner för tabellen INNER JOIN beroende på värden för de sammanfogade arrayerna

SELECT 
   CONCAT( 
    "{"
   ,     '"id"' , ":" , '"' , friends.id , '"' , ","
   ,     '"name"' , ":" , '"' , friends.name , '"' , ","
    , 
   CASE 
   WHEN relations.status = 'Current' 
     THEN CONCAT('"CurrentTeam":["',    teams.name ,'"]')
   ELSE CONCAT('"pastTeam": '   ,   '[' ,   GROUP_CONCAT( '"',teams.name, '"'),']'  )
     END   
   , "}"
   )
  AS json
FROM 
 friends 
INNER JOIN 
 relations 
ON 
 friends.id = relations.friends_id
INNER JOIN
 teams 
ON
relations.teams_id = teams.id
 group by friends.id,relations.status

http://sqlfiddle.com/#!9/694bc69/23



  1. 4 funktioner som returnerar minuterna från ett tidsvärde i MariaDB

  2. Hur tar man bort från select i MySQL?

  3. Hur returnerar man fälttyp från MySQL-fråga?

  4. Returnera alla främmande nycklar som refererar till en given tabell i SQL Server