codice:
CREATE TABLE `amici` (
`id` int(11) NOT NULL auto_increment,
`amico_di` int(11) default NULL,
`id_amico` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1;
/*Data for the table `amici` */
insert into `amici` (`id`,`amico_di`,`id_amico`) values (1,1,2);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (2,1,3);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (3,1,4);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (4,1,5);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (5,1,6);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (6,2,3);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (7,2,4);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (8,3,10);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (9,4,2);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (10,4,3);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (11,5,2);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (12,5,3);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (13,5,4);
insert into `amici` (`id`,`amico_di`,`id_amico`) values (14,6,10);
select amico_di,group_concat(id_amico) as amici from (
select amico_di,id_amico
from amici where id_amico = any (select id_amico from amici where amico_di = 1)
and amico_di <> 1) as tab
group by amico_di
La query mostrerà tutti gli utenti che hanno amici comuni all'utente 1.