2016-08-31 2 views
0

나는 세 개의 테이블 EMPLOYEE, EMPLOYEE_UNIT, UNIT을 가지고 있습니다. employee_id를 기준으로 단일 사용자의 이름과 직원 단위 이름을 포함하는 직원 세부 정보를 원합니다 (예 : 직원 1은 2 개의 다른 단위로 작업 중입니다.) 작업 단위로 직원의 이름을 원하는 :SQL 쿼리가 잘못된 출력을 내고 있습니다.

TABLE STRUCTURE AS FOLLOWS: 
EMPLOYEE TABLE 
EMPLOYEE_ID,FIRST_NAME,LAST_NAME,PHONE_NUMBER 
1   emp1  emp1  *********** 
2   emp2  emp2  *********** 
3   emp3  emp3  *********** 
4   emp4  emp4  *********** 
UNIT TABLE 
UNIT_ID,UNIT_TITLE,CITY 
1  unit1  city1 
2  unit2  city2 
3  unit3  city3 

EMPLOYEE_UNIT TABLE 
EMP_UNIT_ID,EMPLOYEE_ID,UNIT_ID 
1   1   2 
2   1   3 
3   2   1 

MYQUERY : 직원의 이름과 해당 단위 제목의 목록

SELECT DISTINCT CONCAT(FIRST_NAME,LAST_NAME) AS TITLE,PHONE_NUMBER 
FROM EMPLOYEE AS E 
LEFT JOIN EMPLOYEE_UNIT AS EU ON EU.EMPLOYEE_ID = E.EMPLOYEE_ID 
WHERE E.EMPLOYEE_ID = 137 
+0

귀하의 질의를 볼 수 있습니까? –

+0

스택 오버플로는 "내 코드 작성"서비스가 아닙니다. 당신이 시도한 쿼리와 원하는 결과를 게시하십시오. – Lamak

답변

0

, 이것을 사용 :

를3210
SELECT e.FIRST_NAME, e.LAST_NAME, GROUP_CONCAT(DISTINCT u.UNIT_TITLE SEPARATOR ', ') 
FROM EMPLOYEE e 
JOIN EMPLOYEE_UNIT m ON e.EMPLOYEE_ID = m.EMP_ID 
JOIN UNIT u ON m.UNIT_ID = u.UNIT_ID 
GROUP BY e.EMPLOYEE_ID 

MySQL에는 이러한 유형의 항목에 대해 GROUP_CONCAT이 있습니다.

+0

직원 단위도 원할 것입니다. ...... 1 명의 직원이 여러 단위로 일하고 있다면 ... 2 명은 직원 세부 정보와 함께 있다고 가정합니다. –

+0

같은 기록에 있습니까? – woz

+0

여러 레코드가있는 동일한 레코드에 있음 –

관련 문제