实践是最好的检验,一直都对这几个连接查询出来的结果有什么不同不大理解,然后自己放一块查询比较了一下,用结果来说话~ 先建两张表如下: t1: id name age 1 张三 18 2 李四 25 t2: id name age 1 王五 25 2 大白 30 1.交叉连接:也叫笛卡尔积 select * from t1 cross join t2; /*不带查询条件的交叉连接/ select * from t1 ,t2;/*这样默认是cross join/ select * from t1 c
第一篇写在网络上的笔记 左外连接 select a.*,b.* from a left join b on a与b的连接条件; 先展示left join关键字左边的a表中的所有数据,根据条件关联查询left join右边的表; 即以left join 左边的表中的所有行为基础,不只是连接条件所匹配的行: 如果left join 左边的表中的某行在右边表的所有行中均没有匹配的一条记录,则最后相关联的查询的结果集中的这一行的右边表的所有列均为null.
代码: select t1.descid, IFNULL(t2.cnt,) as countnew, t1.description from uosdesc t1 left outer join t2 on t1.descid=t2.descid order by countnew desc 说明: 左外连接,左表t1为主表,右表t2为从表. on后为条件,主表和从表做连接,若从表数据不存在则以NULL填充结果集. IFNULL判断结果集中字段,若为NULL则以第二个参数0替代之.
1. 内连接很简单 select A.*, B.* from A,B where A.id = B.id select A.*, B.* from A inner join B on A.id = B.id 以上两句是完全等价的 2. 左外连接 select * from emp a left join dept d on a.deptno=d.deptno select * from emp a,dept d where a.deptno=d.deptno(+) 以上两句是完全等价的 3. 右