テーブルは5つ
- ユーザーの個人データ (users _ record=120000)。
- 働いているユーザー (users_positions _ record=150000)。
- 組織 (組織 _ レコード = 2500)。
- 部門 (部門 _ レコード = 3500)。
- ポジション (positions _ record=4500)。
これらのテーブルを結合したいのですが、最適なクエリは何ですか?
私はこのクエリを書きますが、非常に遅いです:
SELECT
*
FROM
(SELECT
p.*
FROM
`user_positions` p
LEFT JOIN `organizations` u_o
ON u_o.`id` = p.`org_title`
LEFT JOIN `divisions` u_d
ON u_d.`id` = p.`division`
LEFT JOIN `positions` u_p
ON u_p.`id` = p.`position`
WHERE u_o.`status` = 1
GROUP BY p.`PRN`) u_a
LEFT JOIN `users` u
ON u.`PRN` = u_a.`PRN`
例 - 単純構造
table users
-- PRN --- FirstName --- Age....
-- 001 --- david --- 24 ....
-- 052 --- george --- 27 ....
table users_positions
-- PRN --- Organization_ID --- Division_ID --- Positionn_ID....
-- 001 --- 1 --- 5 --- 1....
-- 001 --- 2 --- 10 --- 5....
-- 052 --- 1 --- 1 --- 1....
table organizations
-- ID --- Name ....
-- 1 --- test 1 ....
-- 2 --- test 2 ....
table divisions
-- ID --- Name --- Age....
-- 1 --- IT Department ....
-- 5 --- Sale Department ....
-- 10 --- Administration Department ....
table positions
-- ID --- Name --- Age....
-- 1 --- Programmer ....
-- 5 --- Manager ....