SQL - SELF JOINS

  • 简述

    SQLSELF JOIN用于将一个表连接到自身,就好像该表是两个表一样;临时重命名 SQL 语句中的至少一个表。
  • 句法

    SELF JOIN 的基本语法如下:
    
       SELECT a.column_name, b.column_name...
       FROM table1 a, table1 b
       WHERE a.common_field = b.common_field;
       
    在这里,WHERE 子句可以是根据您的要求的任何给定表达式。
  • 例子

    考虑下表。
    CUSTOMERS Table如下。
    
       +----+----------+-----+-----------+----------+
       | 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 |
       +----+----------+-----+-----------+----------+
       
    现在,让我们使用 SELF JOIN 加入这个表,如下所示 -
    
       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 |
       +----+----------+---------+