多表連線查詢
阿新 • • 發佈:2019-11-06
1、查詢使用者擁有的許可權
子查詢和連線查詢2種,比較推薦連線查詢,子查詢比較影響效能,子查詢看起來比較容易理解,而連線查詢需要比較熟悉各個表之間的關係
SELECT DISTINCT p.* FROM t_permission p LEFT JOIN t_role_permission trp ON trp.`permissionid`=p.`id` LEFT JOIN t_role tr ON tr.`id`=trp.`roleid` WHERE tr.id IN( SELECT t_r.id FROM t_role t_r LEFT JOIN t_user_role t_u_r ON t_u_r.`roleid`=t_r.`id` WHERE t_u_r.`userid`=31 ); 子查詢不太推薦,比較影響效能 推薦連線查詢 SELECT DISTINCT p.* FROM t_permission p LEFT JOIN t_role_permission trp ON trp.`permissionid`=p.`id` LEFT JOIN t_role tr ON tr.`id`=trp.`roleid` LEFT JOIN t_user_role tur ON tur.`roleid`=tr.`id` LEFT JOIN t_user tu ON tu.`id`=tur.`userid` WHERE tu.`id`=31;
本文由部落格一文多發平臺 OpenWrite 釋出!