子查询与内连接查询区别(效率上,连接查询高于子查询)、左连接以及连接的原理,还有内连接与左连接的区别
一、子查询与内连接查询区别(效率上,连接查询高于子查询)
子查询:比起连接查询慢点是:它取出表1 的第一行记录 ,就去与表2 的每一行记录进行比较,然后,它再取出表1 的第2行记录,去与表2 的每一行记录进行比较,又取出,然后与另外一个表的每一行记录进行比较,又取出,又与每一行记录比较,又取出。
连接查询:直接取出表1所有记录与表2拼接到一起,然后在拼接后的同一张表再去比较,所以连接查询效率快。
语法:子查询:
select 列1,列2,(select 列3 from 表2 where 表1 与 表2 的共同属性) from 表1;
语法:内连接:
语法: select 列1,列2,列3… from 表1,表2,表3 where 表之间的共同属性。
或者:
select 列1,列2,列3… from (父表,(题意的主要数据来源))表1 inner join 表2 on (表1与表2 的共同属性)
表1 inner join 表3 on (表1与表3 的共同属性)
表2 inner join 表3 on (表2 与表3 的共同属性);
6,内连接与子查询的区别以及使用建议:
子查询的话,建议使用在查询显示出来的列只需要使用一张表的
内连接的话,建议使用查询显示出来的列需要使用到两张表中的多个列 (多表查询 适合用内连接)