人員表 man 中有 zw_id(職務)與 man_id(主管)兩個外鍵,皆指向 zw 表。需一次查詢同時取出職務名稱與主管姓名。
SELECT
a.man_id,
a.man_name,
d.sex_name,
zw_name,
c.money
FROM man AS a
LEFT JOIN zw AS b ON a.zw_id = b.zw_id -- 關聯職務
LEFT JOIN zw AS c ON a.man_id = c.man_id -- 關聯主管(同一張表,不同別名)
LEFT JOIN xb AS d ON c.sex_id = d.sex_id; -- 關聯性別表
b、c 分別代表同一張 zw 表的不同角色,避免列名衝突。a.man_name、c.money 明確來源,消除歧義。若需查詢「主管的主管」,再加一層 LEFT JOIN zw AS e ON c.man_id = e.man_id 即可,別名依序遞增(d、e、f…)保持可讀性。
zw_id、man_id)建立非叢集索引。善用表別名,讓自關聯查詢既優雅又高效。