使用表别名
- customers as c建立c作为customers的别名,这使得能使用省写的c而不是全名customers
- 表别名只在查询执行中使用,与列别名不一样,表别名不但会到客户机
使用不同类型的联结
- 自联结通常作为外部语句用来替代从相同表中检索数据时使用的子查询语句。虽然最终的结果是相同的 但有时候处理联结远比处理子查询快得多
- select p1.prod_id,p1.prod_name from products as p1,products as p2 where p1.vend_id = p2.vend_id and p2.prod_id = 'dintr';
- products的第一次出现为别名p1,第二次出现为p2
- 自然联结,我们建立的每个内部联结基本都是自然联结
- 外部联结,联结包含了那些在相关表中没有关联行的行
- outer join关键字,包括没有关联行的行,必须使用right或left关键字指定包括其所有行的表(right指出的是outer join右边的表,left反之)
- 使用带聚集函数的联结,聚集函数用来汇总数据,count()函数
使用联结和联结条件
- 注意所使用的联结类型,一般使用内部联结
- 保证使用正确的联结条件
- 应该总能提供联结条件,否则会得出笛卡儿积
- 在一个联结中可以包含多个表,甚至对于每个联结可以采用不用的联结类型