Получить общих друзей на таблице mysql

У меня есть User , status и link_user_friend

где пользователь содержит данные сведений о пользователе, статус содержит статус запроса на добавление в друзья link_user_friend содержит ссылку пользователя и друга

таблицы, как показано ниже

user
+--------+--------+---------+
| fname  | lname  | user_id |
+--------+--------+---------+
| Fone   | Lone!  | ID_1    |
| Ftwo   | Ltwo!  | ID_2    |
| Fthree | Lthree!| ID_3    |
| Ffour  | Lfour! | ID_4    |
| Ffive  | Lfive! | ID_5    |
| Fsix   | Lsix!  | ID_6    |
| Fseven | Lseven!| ID_7    |
| Feight | Leight!| ID_8    |
| Fnine  | Lnine! | ID_9    |
| Ften   | Lten!  | ID_10   |
| Fele   | Lele!  | ID_11   |
| Ftwl   | Ltwl!  | ID_12   |
+---------------------------+

Status        
+-----+-------------------------+
| _id | name                    |
+-----+-------------------------+
|   1 | Friend Request Sent     |
|   2 | Friend Request Rejected |
|   3 | Friends                 |
|   4 | Block                   |
+-----+-------------------------+    

link_user_friend
+-----+---------+------------+--------+
| _id | user_id | friend_id  | status |
+-----+---------+------------+--------+
| a1  | ID_1    | ID_2       |      1 |
| a2  | ID_1    | ID_3       |      2 |
| a3  | ID_1    | ID_4       |      3 |
| a4  | ID_1    | ID_5       |      4 |
| a5  | ID_1    | ID_6       |      3 |
| a6  | ID_1    | ID_7       |      3 |
| a7  | ID_2    | ID_3       |      2 |
| a8  | ID_2    | ID_4       |      1 |
| a9  | ID_2    | ID_5       |      1 |
| b1  | ID_2    | ID_6       |      3 |
| b2  | ID_2    | ID_7       |      2 |
| b3  | ID_2    | ID_8       |      4 |
| b4  | ID_2    | ID_9       |      1 |
| b5  | ID_2    | ID_10      |      2 |
| b6  | ID_2    | ID_11      |      3 |
| b7  | ID_2    | ID_12      |      3 |
| b8  | ID_3    | ID_4       |      3 |
| b9  | ID_3    | ID_5       |      3 |
| c1  | ID_3    | ID_6       |      3 |
| c2  | ID_3    | ID_7       |      3 |
| c3  | ID_3    | ID_8       |      1 |
| c4  | ID_3    | ID_9       |      3 |
| c5  | ID_3    | ID_10      |      3 |
| c6  | ID_3    | ID_11      |      2 |
| c7  | ID_3    | ID_12      |      3 |
| c8  | ID_4    | ID_5       |      3 |
| c9  | ID_4    | ID_6       |      3 |
| d1  | ID_4    | ID_7       |      3 |
| d2  | ID_4    | ID_8       |      3 |
| d3  | ID_4    | ID_9       |      3 |
| d4  | ID_4    | ID_10      |      3 |
| d5  | ID_4    | ID_11      |      3 |
| d6  | ID_4    | ID_12      |      3 |
| d7  | ID_5    | ID_6       |      3 |
| d8  | ID_5    | ID_7       |      3 |
| d9  | ID_5    | ID_8       |      1 |
| e1  | ID_5    | ID_9       |      3 |
| e2  | ID_5    | ID_10      |      3 |
| e3  | ID_5    | ID_11      |      3 |
| e4  | ID_5    | ID_12      |      3 |
| e5  | ID_6    | ID_7       |      3 |
| e6  | ID_6    | ID_8       |      3 |
| e7  | ID_6    | ID_9       |      1 |
| e8  | ID_6    | ID_10      |      3 |
| e9  | ID_6    | ID_11      |      2 |
| f1  | ID_6    | ID_12      |      3 |
| f2  | ID_7    | ID_8       |      3 |
| f3  | ID_7    | ID_9       |      3 |
| f4  | ID_7    | ID_10      |      3 |
| f5  | ID_7    | ID_11      |      3 |
| f6  | ID_7    | ID_12      |      3 |
+-----+---------+------------+--------+

Я хочу получить список друзей пользователя с общими друзьями. Сейчас я могу получить список друзей для бывшего пользователя с идентификатором ID_7.

select *
from
((select u.fname fname, u.lname lname, u.user_id, f.status 
from link_user_friend f, user u
where u.user_id = f.friend_id
and f.user_id = 'ID_7'
and f.status = 3)
UNION
(select u.fname, u.lname, u.user_id, f.status 
from link_user_friend f, user u
where u.user_id = f.user_id
and f.friend_id = 'ID_7'
and f.status = 3)) as t order by user_id

дает мне результат

+--------+---------+---------+--------+
| fname  | lname   | user_id | status |
+--------+---------+---------+--------+
| Fone   | Lone!   | ID_1    |      3 |
| Ften   | Lten!   | ID_10   |      3 |
| Fele   | Lele!   | ID_11   |      3 |
| Ftwl   | Ltwl!   | ID_12   |      3 |
| Fthree | Lthree! | ID_3    |      3 |
| Ffour  | Lfour!  | ID_4    |      3 |
| Ffive  | Lfive!  | ID_5    |      3 |
| Fsix   | Lsix!   | ID_6    |      3 |
| Feight | Leight! | ID_8    |      3 |
| Fnine  | Lnine!  | ID_9    |      3 |
+--------+---------+---------+--------+

так же для

select *
from
((select u.fname fname, u.lname lname, u.user_id, f.status 
from link_user_friend f, user u
where u.user_id = f.friend_id
and f.user_id = 'ID_1'
and f.status = 3)
UNION
(select u.fname, u.lname, u.user_id, f.status 
from link_user_friend f, user u
where u.user_id = f.user_id
and f.friend_id = 'ID_1'
and f.status = 3)) as t order by user_id

я получаю результат

+--------+---------+---------+--------+
| fname  | lname   | user_id | status |
+--------+---------+---------+--------+
| Ffour  | Lfour!  | ID_4    |      3 |
| Fsix   | Lsix!   | ID_6    |      3 |
| Fseven | Lseven! | ID_7    |      3 |
+--------+---------+---------+--------+

поэтому, когда мы сравниваем обе приведенные выше таблицы, пользователь ID_4, ID_6 является общим другом ID_7 и ID_1, поэтому количество общих друзей равно 2.

то же самое для других пользователей, мне нужно, чтобы общие друзья считались еще одним столбцом. как

+--------+---------+---------+--------+----------------+
| fname  | lname   | user_id | status | Mutual Friends |
+--------+---------+---------+--------+----------------+
| Fone   | Lone!   | ID_1    |      3 |      2         |
| Ften   | Lten!   | ID_10   |      3 |      .         |
| Fele   | Lele!   | ID_11   |      3 |      .         |
| Ftwl   | Ltwl!   | ID_12   |      3 |      .         |
| Fthree | Lthree! | ID_3    |      3 |      .         |
| Ffour  | Lfour!  | ID_4    |      3 |      .         |
| Ffive  | Lfive!  | ID_5    |      3 |      .         |
| Fsix   | Lsix!   | ID_6    |      3 |      .         |
| Feight | Leight! | ID_8    |      3 |      .         |
| Fnine  | Lnine!  | ID_9    |      3 |      .         |
+--------+---------+---------+--------+----------------+
  1. Я не понимаю, как подсчитать общих друзей. Я думал повторить каждую запись и получить общее количество друзей, но у него есть проблемы с производительностью. Есть ли способ получить только один запрос

  2. Мне нужен список общих друзей любого случайного пользователя. Например, если пользователь ищет какое-то имя. Я сопоставлю это имя с пользовательской таблицей, и у меня есть некоторый набор user_id. для этих user_ids я хочу общее количество друзей.

Пожалуйста, кто-нибудь может мне помочь

Я прикрепил вставку и создаю sql

CREATE TABLE `friend_status` (
  `_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NULL,
  PRIMARY KEY (`_id`));

INSERT INTO `friend_status` (`name`) VALUES ('Friend Request Sent');
INSERT INTO `friend_status` (`name`) VALUES ('Friend Request Rejected');
INSERT INTO `friend_status` (`name`) VALUES ('Friends');
INSERT INTO `friend_status` (`name`) VALUES ('Block');

CREATE TABLE `user` (
  `user_id` VARCHAR(50) NOT NULL,
  `fname` VARCHAR(45) NULL,
  `lname` VARCHAR(45) NULL,
  PRIMARY KEY (`user_id`));

CREATE TABLE `link_user_friend` (
  `_id` VARCHAR(50) NOT NULL,
  `user_id` VARCHAR(50) NOT NULL,
  `friend_id` VARCHAR(50) NOT NULL,
  `status` INT NOT NULL DEFAULT 1,
  PRIMARY KEY (`_id`),
  CONSTRAINT `status`
    FOREIGN KEY (`status`)
    REFERENCES `friend_status` (`_id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE);

Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Ftwo','Ltwo!','ID_2');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Fthree','Lthree!','ID_3');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Ffour','Lfour! ','ID_4');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Ffive','Lfive! ','ID_5');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Fsix','Lsix!  ','ID_6');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Fseven','Lseven!','ID_7');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Feight','Leight!','ID_8');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Fnine','Lnine! ','ID_9');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Ften','Lten!  ','ID_10');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Fele','Lele!  ','ID_11');
Insert into user (`account_type`,`fname`, `lname`, `user_id`) values('1','Ftwl','Ltwl!  ','ID_12');


insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa1','ID_1','ID_2','1');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa2','ID_1','ID_3','2');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa3','ID_1','ID_4','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa4','ID_1','ID_5','4');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa5','ID_1','ID_6','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa6','ID_1','ID_7','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa7','ID_2','ID_3','2');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa8','ID_2','ID_4','1');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fa9','ID_2','ID_5','1');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb1','ID_2','ID_6','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb2','ID_2','ID_7','2');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb3','ID_2','ID_8','4');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb4','ID_2','ID_9','1');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb5','ID_2','ID_10','2');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb6','ID_2','ID_11','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb7','ID_2','ID_12','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb8','ID_3','ID_4','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fb9','ID_3','ID_5','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc1','ID_3','ID_6','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc2','ID_3','ID_7','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc3','ID_3','ID_8','1');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc4','ID_3','ID_9','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc5','ID_3','ID_10','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc6','ID_3','ID_11','2');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc7','ID_3','ID_12','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc8','ID_4','ID_5','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fc9','ID_4','ID_6','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd1','ID_4','ID_7','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd2','ID_4','ID_8','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd3','ID_4','ID_9','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd4','ID_4','ID_10','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd5','ID_4','ID_11','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd6','ID_4','ID_12','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd7','ID_5','ID_6','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd8','ID_5','ID_7','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fd9','ID_5','ID_8','1');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe1','ID_5','ID_9','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe2','ID_5','ID_10','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe3','ID_5','ID_11','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe4','ID_5','ID_12','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe5','ID_6','ID_7','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe6','ID_6','ID_8','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe7','ID_6','ID_9','1');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe8','ID_6','ID_10','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('fe9','ID_6','ID_11','2');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('ff1','ID_6','ID_12','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('ff2','ID_7','ID_8','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('ff3','ID_7','ID_9','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('ff4','ID_7','ID_10','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('ff5','ID_7','ID_11','3');
insert into link_user_friend (`_id`,`user_id`,`friend_id`,`status`) values('ff6','ID_7','ID_12','3');

person Sharanabasu Angadi    schedule 08.10.2015    source источник
comment
пожалуйста, добавьте образец результата, который вы хотите   -  person Bernd Buffen    schedule 08.10.2015
comment
Пожалуйста, добавьте также операторы создания из ваших таблиц, чтобы увидеть индекс и типы данных.   -  person Bernd Buffen    schedule 08.10.2015
comment
Я обновил вопрос, пожалуйста, проверьте, я добавлю заявления о создании через некоторое время, спасибо   -  person Sharanabasu Angadi    schedule 08.10.2015
comment
Я добавил оператор создания, также проверьте @BerndBuffen   -  person Sharanabasu Angadi    schedule 08.10.2015
comment
Для чего id в таблице link_user_friend?   -  person Strawberry    schedule 08.10.2015
comment
Спасибо, пожалуйста, дайте мне знать, кто эти 3 общих друга из Fone. Нет строки пользователя, и я не могу найти одинаковые идентификаторы пользователей. У пользователя 1 есть друг с идентификатором ID2-7, а у пользователя 7 — идентификатор друга с идентификатором ID8-12.   -  person Bernd Buffen    schedule 08.10.2015
comment
вы можете использовать count в oracle и microsoft sql   -  person Stelium    schedule 08.10.2015
comment
Общие друзья @BerndBuffen ID_1 и ID_7, то есть пользователя 1 и пользователя 7, — это ID_4 и ID_6, то есть общее количество друзей 2.   -  person Sharanabasu Angadi    schedule 08.10.2015
comment
@Sharanabasu Angadi, мы можем поболтать? у меня есть комната для общих друзей на столе mysql   -  person Bernd Buffen    schedule 08.10.2015
comment
chat.stackoverflow.com/rooms/91773/   -  person Bernd Buffen    schedule 08.10.2015


Ответы (1)


К сожалению, мне не удалось связаться в чате, чтобы прояснить некоторые моменты. Итак, я написал для вас запрос, который может сделать почти все (надеюсь). В конце запроса есть 2 строки, где вы можете изменить его функцию.

сначала идет строка ГДЕ u1.user_id ='ID_4' AND u2.user_id ='ID_6'. если вы удалите его, запрос выведет всех пользователей друг к другу, или вы удалите только второго пользователя (u2), вы получите список для всех общих пользователей от пользователя1.

во-вторых, вы можете удалить или изменить строку HAVING sum_of_mutual_friends > 2, чтобы изменить количество сообщений о пользователе.

SELECT
  u1.user_id AS user_1,
  u2.user_id AS user_2,
  GROUP_CONCAT(IF( f.user_id = u1.user_id, f.friend_id, f.user_id) SEPARATOR ', ') AS mutual_friends,
  sum(1) sum_of_mutual_friends
FROM USER u1
LEFT JOIN USER u2 ON u1.user_id <> u2.user_id AND u1.user_id < u2.user_id 
LEFT JOIN  link_user_friend f ON f.status =3 AND ( f.user_id = u1.user_id OR f.friend_id = u1.user_id ) AND f.user_id <> u2.user_id
INNER JOIN link_user_friend m ON
  (
    (m.user_id = IF( f.user_id = u1.user_id, f.friend_id, f.user_id)  AND m.friend_id = u2.user_id )
  OR
  (
    m.friend_id = IF( f.user_id = u1.user_id, f.friend_id, f.user_id) AND m.user_id = u2.user_id    )
  )
  AND
    m.status = 3
WHERE u1.user_id ='ID_4' AND u2.user_id ='ID_6'
GROUP BY u1.user_id,u2.user_id
HAVING sum_of_mutual_friends > 2
;

Результат:

+--------+--------+--------------------------------------------+-----------------------+
| user_1 | user_2 | mutual_friends                             | sum_of_mutual_friends |
+--------+--------+--------------------------------------------+-----------------------+
| ID_4   | ID_6   | ID_1, ID_3, ID_5, ID_7, ID_8, ID_10, ID_12 |                     7 |
+--------+--------+--------------------------------------------+-----------------------+

и без где

+--------+--------+---------------------------------------------------------+-----------------------+
| user_1 | user_2 | mutual_friends                                          | sum_of_mutual_friends |
+--------+--------+---------------------------------------------------------+-----------------------+
| ID_1   | ID_10  | ID_4, ID_7, ID_6                                        |                     3 |
| ID_1   | ID_12  | ID_7, ID_6, ID_4                                        |                     3 |
| ID_1   | ID_3   | ID_4, ID_6, ID_7                                        |                     3 |
| ID_1   | ID_5   | ID_7, ID_6, ID_4                                        |                     3 |
| ID_1   | ID_8   | ID_7, ID_6, ID_4                                        |                     3 |
| ID_10  | ID_11  | ID_4, ID_7, ID_5                                        |                     3 |
| ID_10  | ID_12  | ID_5, ID_7, ID_3, ID_4, ID_6                            |                     5 |
| ID_10  | ID_3   | ID_5, ID_6, ID_7, ID_4                                  |                     4 |
| ID_10  | ID_4   | ID_6, ID_7, ID_5, ID_3                                  |                     4 |
| ID_10  | ID_5   | ID_4, ID_7, ID_3, ID_6                                  |                     4 |
| ID_10  | ID_6   | ID_7, ID_5, ID_3, ID_4                                  |                     4 |
| ID_10  | ID_7   | ID_5, ID_4, ID_6, ID_3                                  |                     4 |
| ID_10  | ID_8   | ID_6, ID_4, ID_7                                        |                     3 |
| ID_10  | ID_9   | ID_7, ID_5, ID_4, ID_3                                  |                     4 |
| ID_11  | ID_12  | ID_4, ID_2, ID_5, ID_7                                  |                     4 |
| ID_11  | ID_3   | ID_7, ID_4, ID_5                                        |                     3 |
| ID_11  | ID_6   | ID_7, ID_2, ID_5, ID_4                                  |                     4 |
| ID_11  | ID_9   | ID_7, ID_5, ID_4                                        |                     3 |
| ID_12  | ID_3   | ID_5, ID_6, ID_7, ID_4                                  |                     4 |
| ID_12  | ID_4   | ID_7, ID_5, ID_3, ID_6                                  |                     4 |
| ID_12  | ID_5   | ID_7, ID_3, ID_6, ID_4                                  |                     4 |
| ID_12  | ID_6   | ID_5, ID_4, ID_3, ID_7, ID_2                            |                     5 |
| ID_12  | ID_7   | ID_6, ID_3, ID_5, ID_4                                  |                     4 |
| ID_12  | ID_8   | ID_4, ID_7, ID_6                                        |                     3 |
| ID_12  | ID_9   | ID_5, ID_4, ID_3, ID_7                                  |                     4 |
| ID_2   | ID_4   | ID_11, ID_6, ID_12                                      |                     3 |
| ID_2   | ID_5   | ID_11, ID_6, ID_12                                      |                     3 |
| ID_2   | ID_7   | ID_12, ID_6, ID_11                                      |                     3 |
| ID_3   | ID_4   | ID_6, ID_12, ID_5, ID_9, ID_10, ID_7                    |                     6 |
| ID_3   | ID_5   | ID_7, ID_6, ID_12, ID_9, ID_4, ID_10                    |                     6 |
| ID_3   | ID_6   | ID_12, ID_4, ID_5, ID_10, ID_7                          |                     5 |
| ID_3   | ID_7   | ID_12, ID_6, ID_4, ID_5, ID_10, ID_9                    |                     6 |
| ID_3   | ID_8   | ID_6, ID_7, ID_4                                        |                     3 |
| ID_3   | ID_9   | ID_4, ID_7, ID_5                                        |                     3 |
| ID_4   | ID_5   | ID_9, ID_11, ID_12, ID_7, ID_10, ID_6, ID_3             |                     7 |
| ID_4   | ID_6   | ID_3, ID_1, ID_12, ID_10, ID_7, ID_8, ID_5              |                     7 |
| ID_4   | ID_7   | ID_11, ID_10, ID_9, ID_3, ID_6, ID_12, ID_5, ID_8, ID_1 |                     9 |
| ID_4   | ID_9   | ID_5, ID_7, ID_3                                        |                     3 |
| ID_5   | ID_6   | ID_3, ID_12, ID_4, ID_7, ID_10                          |                     5 |
| ID_5   | ID_7   | ID_6, ID_3, ID_12, ID_4, ID_11, ID_9, ID_10             |                     7 |
| ID_5   | ID_8   | ID_6, ID_4, ID_7                                        |                     3 |
| ID_5   | ID_9   | ID_7, ID_3, ID_4                                        |                     3 |
| ID_6   | ID_7   | ID_3, ID_8, ID_12, ID_5, ID_4, ID_1, ID_10              |                     7 |
| ID_6   | ID_9   | ID_3, ID_4, ID_7, ID_5                                  |                     4 |
| ID_7   | ID_9   | ID_3, ID_4, ID_5                                        |                     3 |
+--------+--------+---------------------------------------------------------+-----------------------+
45 rows in set (0.01 sec)

ПРИМЕЧАНИЕ

вы должны установить размер GROUP_CONCAT, если у вас большие user_lists.

пожалуйста, дайте мне сейчас, если это то, что вы ищете.

person Bernd Buffen    schedule 11.10.2015
comment
это то, что я искал :) .. большое спасибо :) за запрос, который делает более чем достаточно... - person Sharanabasu Angadi; 11.10.2015