2016-08-11 14 views
0

departmentsusersの間に1対多の関係があります。Unionを使用してInner Joinを使用する方法

データベース設計:

SC

usersはそれぞれ自部門を持っており、部門は、多くのusersを持っています。私はすべてdepartment_nameを選択したかったのですが、重複値はdepartment_nameです。これを1にマージしたいので、UNIONを使用する予定でした。どのようにインナー結合を使用して実装できますか?これはこれまでの私のコードです。

SQL

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

結果:あなたが唯一の明確な部署名をしたい場合は

SC

+0

部門名が必要な場合は、なぜユーザーテーブルに参加していますか? 'SELECT department_name FROM departments'だけです。 – eggyal

+0

@eggyal私が計画したことは、すべてのユーザーがその部門名に属しているためです。私はこれを私のコンボボックスに入れます。 – Francisunoxx

+0

私はこれらのコンボボックスについてもう少し詳しく知りたいと思っています。ユーザー(部署を含む)を選択する場合は、参加が必要ですが、明らかに各部門が複数回表示される可能性があります。部門だけが必要な場合は、参加するべきではありません。あなたの最も簡単な解決策は2つのクエリを実行することでしょうか?もっと知ることなく言うのは難しい。 – 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 
関連する問題