Mysql GROUP_CONCAT и IN запрос
У меня есть таблица EMPDetails, как
EmpID EmpName EmpFriendsID
1 Hari 2,3
2 Ramesh
3 Suresh
Я хотел бы получить запрос для получения имени EmpFriends, если я дам EmpID.
Например, если указан EmpID 1, результат должен быть
1 Hari 2,3 Ramesh,Suresh
Благодарю.
2 ответа
Решение
Для объединения таблиц используйте FIND_IN_SET(), а затем сгруппируйте записи и используйте GROUP_CONCAT() для объединения имен друзей.
SELECT t.EmpID,t.EmpName,t.EmpFriendsID,
GROUP_CONCAT(t1.EmpName)
FROM t
LEFT JOIN t as T1 on FIND_IN_SET(t1.EmpID,t.EmpFriendsID)
WHERE t.EmpID=1
GROUP BY (t.EmpID)
Используйте функцию FIND_IN_SET()
Попробуй это:
SELECT E1.EmpID, E1.EmpName, GROUP_CONCAT(E2.EmpFriendsID)
FROM EMPDetails E1
LEFT JOIN EMPDetails E2 ON FIND_IN_SET(E2.EmpID, E1.EmpFriendsID)
GROUP BY E1.EmpID