自然连接
SQL 99 在 SQL 92 的基础上提供了一些特殊语法,比如 NATURAL JOIN
用来表示自然连接。
我们可以把自然连接理解为 SQL 92 中的等值连接。它会帮你自动查询两张连接表中所有相同的字段,然后进行等值连接。
在 SQL 92 标准中:
SELECT employee_id,last_name,department_name
FROM employees e JOIN departments d
ON e.`department_id` = d.`department_id`
AND e.`manager_id` = d.`manager_id`;
在 SQL 99 中你可以写成:
SELECT employee_id,last_name,department_name
FROM employees e NATURAL JOIN departments d;
USING
连接
当我们进行连接的时候,SQL 99 还支持使用 USING
指定数据表里的同名字段进行等值连接。但是只能配合 JOIN 一起使用。比如:
SELECT employee_id,last_name,department_name
FROM employees e JOIN departments d
USING (department_id);
你能看出与自然连接 NATURAL JOIN
不同的是,USING
指定了具体的相同的字段名称,你需要在 USING
的括号 ()
中填入要指定的同名字段。同时使用 JOIN...USING
可以简化 JOIN ON
的等值连接。它与下面的 SQL 查询结果是相同的:
SELECT employee_id,last_name,department_name
FROM employees e ,departments d
WHERE e.department_id = d.department_id;