sql >> Database >  >> RDS >> Mysql

Hoe de kolommen voor de INNER JOIN-tabel te selecteren, afhankelijk van de waarden van de samengevoegde arrays

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. Oracle PL/SQL - tips voor onmiddellijke uitvoer / console-afdrukken

  2. Tekst extraheren tussen substrings in MySQL

  3. Hoe de uitvoer van een DBCC-statement in een temptable te vangen?

  4. Kolom 'user_id' in veldlijst is dubbelzinnig