就这条SQL
我的条件是 t1.role_id = t2.role_id 但结果显示的时候 role_id确不是相等的,这是为什么????
下面是结果
select t2.exten,t1.role_info,t1.role_id,t2.role_id from role_auth_new t1 left join exten_role t2 on t1.role_id = t2.role_id where t1.role_group='3';
我的条件是 t1.role_id = t2.role_id 但结果显示的时候 role_id确不是相等的,这是为什么????
下面是结果
select t2.exten,t1.role_info,t1.role_id,t2.role_id from role_auth_new t1 left join exten_role t2 on t1.role_id = t2.role_id where t1.role_group='3';
用inner join就过滤了。
这就是左连接,当右边的表没有适合的记录的时候,如果你查询右边表的列,那么显示的就是null值,用null值来代替的。
要是你讲left join换成inner join,那么就查询就没有记录了,这就是左连接和内连接的区别。
《数据库系统概论(第四版)》 王珊 萨师煊 高等教育出版社 (掌握基础知识和概念)