У меня есть список сотрудников, и один сотрудник может работать во многих отделах.Я хочу получить список всех сотрудников и всех отделов, в которых они работают, только если они работают с deptID 3 и 4.
Я, только если сотрудник работает в отделе 3 или 4, я хочу получить список всехотделы, в которых он работает.
SQL-запрос выглядит примерно так, чтобы получить сотрудников и их рабочий отдел:
SELECT e.`Emp_ID`,e.`FirstName`,e.`Address`
,GROUP_CONCAT(edd.Dept_id) AS dept_ids
,GROUP_CONCAT(edd.`Dept_Name`) AS dept_names
FROM employee e
INNER JOIN emp_dept_details edd
ON e.`Emp_ID` = edd.`Emp_ID`
GROUP BY e.`Emp_ID`;
Результат:
"Emp_ID" "FirstName" "Address" "dept_ids" "dept_names"
"1" "emp1" "abcd" "3,9,12,13,11" "Eng,ESC,Mech,EEE,MIS"
"2" "emp2" "abcd1" "9,11,13,8" "Eng,MIS,EEE,CIS"
Так что я нея не хочу, чтобы в записи group_concat присутствовала вторая запись, поскольку deptID 3 или 4 отсутствует.
Где первая запись содержит 3, поэтому мне нужен весь список "3,9,12,13,11" Могу ли я сделать это безвложенность запроса.Мне приходится иметь дело с огромными записями, поэтому вложение замедлит процесс.