Como juntar matrizes com MySQL de 3 tabelas de relacionamento muitos para muitos
Criei um banco de dados mySQL com o phpMyAdmin no meu servidor local. Neste banco de dados, guardo os nomes e as equipes favoritas da NBA dos meus amigos. Esse é obviamente um relacionamento de muitos para muitos. Por esse motivo, eu executo o script seguido no MySQL para criar as tabelas apropriadas para este banco de dados:
CREATE TABLE `friends` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `teams` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `relations` (
`friends_id` int(4) NOT NULL,
`teams_id` int(4) NOT NULL,
)
Obviamente, inseri alguns valores nessas tabelas, mas não forneço extensivamente o código-fonte aqui para economizar espaço. Um pequeno pedaço é o seguinte:
INSERT INTO `friends` (`id`, `name`)
VALUES
(1,'David Belton'),
(2,'Alex James');
INSERT INTO `teams` (`id`, `name`)
VALUES
(1,'Cleveland Cavaliers'),
(2,'Boston Celtics');
INSERT INTO `relations` (`friends_id`, `teams_id`)
VALUES
(1,1),
(2,1),
(2,2);
Depois de executar um script PHP que busca os dados do banco de dados e os imprime, quero ter o seguinte tipo de saída json válida para cada um dos meus amigos:
{
"id": "1",
"name": "Alex James",
"team": ["Boston Celtics", "Cleveland Cavaliers"]
}
Como posso criar esse conjunto de equipes favoritas para cada pessoa com o MySQL?
P.S. Suponho que seja melhor fazer isso no MySQL antes que os dados sejam recuperados com PHP.