目录
3.1左外连接(left outer join,outer可以省略)
3.2右外连接(right outer join,outer可以省略)
一、连接查询
(假设有两张表A,B)
1.交叉连接(CROSS JOIN)
语法:SELECT * FROM A,B;
SELECT * FROM A CROSS JOIN B;
总结:得到的查询结果是两张表的笛卡尔积,也就是用A表中的每条数据都去匹配B表中的所有数据,获得的结果往往不是我们需要的,一般很少使用交叉连接。
2.内连接(inner join ,inner 可以省略)
2.1隐示内连接
语法:SELECT * FROM A,B WHERE 条件;
2.2显示内连接
语法:SELECT * FROM A INNER JOIN B ON 条件;
总结:显示内连接和隐示内连接获得的查询结果是一样的,都是A表和B表的交集(例:A.id = B.id),但是只能查到有关系的信息,如果A表的一条数据的与B表关联的字段(如:A.id = null),即:这条数据在B表中没有对应的信息,则无法获得。
3.外连接(outer join,outer可以省略)
3.1左外连接(left outer join,outer可以省略)
语法:SELECT * FROM A LEFT OUTER JOIN B ON 条件;
总结:左外连接获得的查询结果是左边的表A的全部信息和A,B两张表的交集,左边A表的全部包含A表中在B表中没有对应关系的信息。
SELECT * FROM A LEFT OUTER JOIN B ON A.id = B.id
where B.id is null;
这种场景下得到的是A中的所有数据减去"与B满足同一条件 的数据",然后得到的A剩余数据;
应用场景: