自然连接

SQL 99 在 SQL 92 的基础上提供了一些特殊语法,比如 NATURAL JOIN 用来表示自然连接。

我们可以把自然连接理解为 SQL 92 中的等值连接。它会帮你自动查询两张连接表中所有相同的字段,然后进行等值连接。

在 SQL 92 标准中:

  1. SELECT employee_id,last_name,department_name
  2. FROM employees e JOIN departments d
  3. ON e.`department_id` = d.`department_id`
  4. AND e.`manager_id` = d.`manager_id`;

在 SQL 99 中你可以写成:

  1. SELECT employee_id,last_name,department_name
  2. FROM employees e NATURAL JOIN departments d;

USING 连接

当我们进行连接的时候,SQL 99 还支持使用 USING 指定数据表里的同名字段进行等值连接。但是只能配合 JOIN 一起使用。比如:

  1. SELECT employee_id,last_name,department_name
  2. FROM employees e JOIN departments d
  3. USING (department_id);

你能看出与自然连接 NATURAL JOIN 不同的是,USING 指定了具体的相同的字段名称,你需要在 USING 的括号 () 中填入要指定的同名字段。同时使用 JOIN...USING 可以简化 JOIN ON 的等值连接。它与下面的 SQL 查询结果是相同的:

  1. SELECT employee_id,last_name,department_name
  2. FROM employees e ,departments d
  3. WHERE e.department_id = d.department_id;