教程 > sql 教程 > 阅读:61

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

sql join 语句用于将数据库中两个或多个表的记录结合起来。join 是一种通过使用每个表的公共值来组合来自两个表的字段的方法。

现在我们看如下的两张表

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

2. orders 表

 ----- --------------------- ------------- -------- 
|oid  | date                | customer_id | amount |
 ----- --------------------- ------------- -------- 
| 102 | 2009-10-08 00:00:00 |           3 |   3000 |
| 100 | 2009-10-08 00:00:00 |           3 |   1500 |
| 101 | 2009-11-20 00:00:00 |           2 |   1560 |
| 103 | 2008-05-20 00:00:00 |           4 |   2060 |
 ----- --------------------- ------------- -------- 

现在让我们使用 select 语句查询这两张表

sql> select id, name, age, amount
   from customers, orders
   where  customers.id = orders.customer_id;

结果如下:

 ---- ---------- ----- -------- 
| id | name     | age | amount |
 ---- ---------- ----- -------- 
|  3 | kaushik  |  23 |   3000 |
|  3 | kaushik  |  23 |   1500 |
|  2 | khilan   |  25 |   1560 |
|  4 | chaitali |  25 |   2060 |
 ---- ---------- ----- -------- 

在这里,值得注意的是连接是在 where 子句中执行的。有几种运算符可用于连接表,例如 =、<、>、<>、<=、>=、!=、between、like 和 not;它们都可以用来连接表。然而,最常见的运算符是等于符号。

sql 中有不同类型的连接可用 -

  • inner join - 当两个表都匹配时返回行。
  • left join - 返回左表中的所有行,即使右表中没有匹配项。
  • right join - 返回右表中的所有行,即使左表中没有匹配项。
  • full join - 当其中一个表中有匹配项时返回行。
  • self join - 用于将表连接到自身,就好像该表是两个表,临时重命名 sql 语句中的至少一个表。
  • cartesian join - 返回来自两个或多个连接表的记录集的笛卡尔积。

查看笔记

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