私は次のように3つのテーブルを持っています:
Table: sys_department
Columns: dept_id dept_name
row: 1 Support
row: 2 HR
row: 3 Billing
Table: sys_groups
Columns: group_id group_name
row: 1 Manager
row: 2 Intern
row: 3 Staff
Table: group_dept_access
Columns: group_id dept_id
row: 1 3
row: 2 1
row: 2 2
row: 3 1
row: 3 2
クエリを実行して、アクセスできる部門名を持つグループ名のリストを取得したいと思います。
したがって、group_dept_accessのgroup_id 3には1と2の両方がdept_idとしてリストされているため、そのグループは、Billingのgroup_nameと、部門名SupportおよびHRで返されます。
JOINを使用してgroup_dept_accessを選択すると、クエリを実行してgroup_nameをフェッチできましたが、3つのテーブルすべてにクエリを実行し、部門も取得する方法がわかりません。
残念ながら、テーブル構造を変更することはできません。3番目のテーブルにグループごとに複数のエントリがない場合は便利ですが、これは既存のシステムであるため、変更すると破損します。また、現在のサーバーでMySQL 5.1.xを使用していますが、将来的には5.5.xを使用する予定です。そのようなクエリがバージョン間で異なる方法で実行される場合、それぞれはどのように実行されますか?
これは私が実行する他の同様のクエリを作成するのに役立ちますので、どんな助けでもありがたいです。この3つのテーブルクエリがどのように行われるかを学ぶことができるように、それがどのように行われるかについての説明も素晴らしいでしょう。前もって感謝します。