左连接:
格式:
select 列1,列2,列N from
tableA left join tableB
on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看]
where,having,group by …照常写。
理解:
左连接:即以左表为基准,到右表找匹配的数据,找不到匹配的用NULL补齐。
右连接和左连接类似,不再赘述,更加推荐左连接。
内连接:
select 列1,列2,列N from
tableA inner join tableB
on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看]
where,having,group by …照常写。
理解:
内连接:查询左右表都有的数据,不要左/右中NULL的那一部分
内连接是左右连接的交集。
in语句:
1、in 后面是记录集,如:
select * from table where uname in(select uname from user);
2、in 后面是字符串,如:
select * from table where uname in(‘aaa’,bbb’,’ccc’,’ddd’,’eee’,ffff”);
注意:这里一定要将字符串用单引号” 标注起来;
我们在查询的时候,一般来讲是左连接的效率比较高,推荐使用左连接
而不是in语句。
但是也是会有特殊的情况。需要放到实际业务场景来看待。