2016-08-11 2 views
0

departmentsusers 사이에는 일대 다 관계가 있습니다.Inner Join을 사용하는 Union 사용 방법

데이터베이스 설계 :

SC

users는 각각 자신의 부서를 가지고 부서는 많은 users 있습니다. department_name을 모두 선택하고 싶었지만 department_name의 중복 값이 ​​있습니다. 하나에 병합하고 싶기 때문에 UNION을 사용하려고 했으므로 어떻게 내부 조인을 사용하여 구현할 수 있습니까? 지금까지 내 코드입니다.

SQL

SELECT D.department_name FROM users U 
INNER JOIN departments D ON D.id = U.department_id; 

결과 : 당신은 별개의 부서 이름을 원하는 경우에

SC

+0

부서 이름 만 원하면 사용자 테이블에 가입하는 이유는 무엇입니까? '부서 이름을 부서에서 선택 '. – eggyal

+0

@eggyal 내가 계획 한 것은 모든 사용자가 그'department_name'에 속하기 때문입니다. 이걸 내 콤보 상자에 넣을거야. – Francisunoxx

+0

우리는이 콤보 박스에 대해 좀 더 자세히 설명해 줄 필요가 있다고 생각합니다. 사용자 (부서가있는 사용자)를 선택하는 경우 가입이 필요하지만 분명히 각 부서는 두 번 이상 나타날 수 있습니다. 부서 만 원할 경우 가입하지 않아야합니다. 가장 쉬운 해결책은 두 가지 쿼리를 수행하는 것일 수 있습니까? 더 많이 알지 못하면 말하기가 어렵습니다. – eggyal

답변

0

, 당신은 그룹에 쉼표로 구분 된 값으로 사용자가 필요합니다.

select d.department_name, group_concat(u.id) user_id_list 
from departments d inner join users u on d.department_id = u.department_id 
group by d.department_name 
관련 문제