数据库教程-SQL自连接

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

SQL自连接被用来联接表本身以作为两个表,暂时重命名,在SQL语句中至少有一个表。

语法

自连接的基本语法如下:

 SELECT a.column_name, b.column_name... FROM table1 a, table1 b WHERE a.common_field = b.common_field;

在这里,WHERE子句可以根据您的需要给定的任意表达式。

例子:

考虑下面的两个表中,(a)CUSTOMERS表如下:

 +----+----------+-----+-----------+----------+ | ID | NAME     | AGE | ADDRESS   | SALARY   | +----+----------+-----+-----------+----------+ |  1 | Ramesh   |  32 | Ahmedabad |  2000.00 | |  2 | Khilan   |  25 | Delhi     |  1500.00 | |  3 | kaushik  |  23 | Kota      |  2000.00 | |  4 | Chaitali |  25 | Mumbai    |  6500.00 | |  5 | Hardik   |  27 | Bhopal    |  8500.00 | |  6 | Komal    |  22 | MP        |  4500.00 | |  7 | Muffy    |  24 | Indore    | 10000.00 | +----+----------+-----+-----------+----------+

现在,让我们用自连接这个表,如下所示:

 SQL> SELECT  a.ID, b.NAME, a.SALARY      FROM CUSTOMERS a, CUSTOMERS b      WHERE a.SALARY < b.SALARY;

这将产生以下结果:

 +----+----------+---------+ | ID | NAME     | SALARY  | +----+----------+---------+ |  2 | Ramesh   | 1500.00 | |  2 | kaushik  | 1500.00 | |  1 | Chaitali | 2000.00 | |  2 | Chaitali | 1500.00 | |  3 | Chaitali | 2000.00 | |  6 | Chaitali | 4500.00 | |  1 | Hardik   | 2000.00 | |  2 | Hardik   | 1500.00 | |  3 | Hardik   | 2000.00 | |  4 | Hardik   | 6500.00 | |  6 | Hardik   | 4500.00 | |  1 | Komal    | 2000.00 | |  2 | Komal    | 1500.00 | |  3 | Komal    | 2000.00 | |  1 | Muffy    | 2000.00 | |  2 | Muffy    | 1500.00 | |  3 | Muffy    | 2000.00 | |  4 | Muffy    | 6500.00 | |  5 | Muffy    | 8500.00 | |  6 | Muffy    | 4500.00 | +----+----------+---------+

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 sql教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/24/数据库教程-sql自连接/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注