16. 创建高级联结
1. 使用表别名
SQL还允许给表名起别名。
- 缩短SQL语句;
- 允许在单条SELECT语句中多次使用相同的表。
表别名只在查询执行中使用。与列别名不一样,表别名不返回到客户机。
2. 使用不同类型的联结
2.1. 自联结

2.2. 自然联结
- 自然联结排除多次出现,使每个列只返回一次。
- 然联结是这样一种联结,其中你只能选择那些唯一的列。这一般是通过对表使用通配符(SELECT *),对所有其他表的列使用明确的子集来完成的
2.3. 外部联结

- 联结包含了那些在相关表中没有关联行的行。这种类型的联结称为外部联结。
- 外部联结语法类似。为了检索所有客户,包括那些没有订单的客户,可如下进行:
- 这条SELECT语句使用了关键字OUTER JOIN来指定联结的类型(而不是在WHERE子句中指定)。但是,与内部联结关联两个表中的行不同的是,外部联结还包括没有关联行的行。在使用OUTER JOIN语法时,必须使用RIGHT或LEFT关键字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右边的表,而LEFT指出的是OUTER JOIN左边的表)。
- 为了从右边的表中选择所有行,应该使用RIGHT OUTER JOIN,
3. 使用带聚集函数的联结


16. 创建高级联结
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/16-创建高级联结/