教程 > sql 教程 > 阅读:48

sql self join——迹忆客-ag捕鱼王app官网

sql self 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 表

 ---- ---------- ----- ----------- ---------- 
| 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 |
 ---- ---------- --------- 

查看笔记

扫码一下
查看教程更方便
网站地图