Mysql的Join就是联表查询,常用链接分为:内连接,右连接,左连接。Mysql是不支持外连接,还有自然链接没用用过。
首先下图是链接数学几何定义
1》笛卡尔积:CROSS JOIN
笛卡尔积就是将A表的每一条记录与B表的每一条记录交叉链接在一起。假如,A表有10条记录,B表有5条记录,笛卡尔积产生的结果就会产生50条记录。所以链接表时候不做条件赛选就等于慢查询,极大浪费资源。
2>内连接:INNER JOIN
内连接INNER JOIN是最常用的连接操作。一般是默认操作,从数学集合角度讲等于两个表的交集;从笛卡尔积角度讲就是挑出ON子句条件成立的记录。有以下写法:
写法1:内连接INNER JOIN
SELECT * FROM t_blog INNER JOIN t_type ON t_blog.typeId=t_type.id;
写法2:WHERE(等值连接)
SELECT * FROM t_blog,t_type WHERE t_blog.typeId=t_type.id;
3》左连接:LEFT JOIN
左连接LEFT JOIN的含义就是求两个表的交集外加左表剩下的数据。从笛卡尔积角度,就是挑出ON子句条件成立记录,然后加上左表中剩余的记录。
4》右连接:RIGHT JOIN
同理右连接RIGHT JOIN就是求两个表的交集外加右表剩下的数据。从笛卡尔积角度,就是挑出ON子句条件成立记录,然后加上右表中剩余的记录.