欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL JOIN 连接详细介绍及简单使用实例

程序员文章站 2022-03-02 23:29:56
sql join 连接 sql join 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。 最常见的 join 类型:sql inner join(简...

sql join 连接

sql join 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

最常见的 join 类型:sql inner join(简单的 join)。 sql inner join 从多个表中返回满足 join 条件的所有行。

让我们看看选自 "orders" 表的数据:

orderid customerid orderdate
10308 2 1996-09-18
10309 37 1996-09-19
10310 77 1996-09-20

然后,看看选自 "customers" 表的数据:

customerid customername contactname country
1 alfreds futterkiste maria anders germany
2 ana trujillo emparedados y helados ana trujillo mexico
3 antonio moreno taquería antonio moreno mexico

请注意,"orders" 表中的 "customerid" 列指向 "customers" 表中的客户。上面这两个表是通过 "customerid" 列联系起来的。

然后,如果我们运行下面的 sql 语句(包含 inner join):

select orders.orderid, customers.customername, orders.orderdate
from orders
inner join customers
on orders.customerid=customers.customerid;

运行结果如下所示:

orderid customername orderdate
10308 ana trujillo emparedados y helados 9/18/1996
10365 antonio moreno taquería 11/27/1996
10383 around the horn 12/16/1996
10355 around the horn 11/15/1996
10278 berglunds snabbköp 8/12/1996

 不同的 sql join

在我们继续讲解实例之前,我们先列出您可以使用的不同的 sql join 类型:

  • inner join:如果表中有至少一个匹配,则返回行
  • left join:即使右表中没有匹配,也从左表返回所有的行
  • right join:即使左表中没有匹配,也从右表返回所有的行
  • full join:只要其中一个表中存在匹配,则返回行

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!