Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SQL 教程

SQL 主页 SQL 简介 SQL 语法 SQL 选择 SQL 选择 DISTINCT SQL WHERE SQL ORDER BY SQL AND SQL OR SQL NOT SQL INSERT INTO SQL 空值 SQL 更新 SQL 删除 SQL SELECT TOP SQL 聚合函数 SQL MIN 和 MAX SQL COUNT SQL SUM SQL AVG SQL LIKE SQL 通配符 SQL IN SQL BETWEEN SQL 别名 SQL 联接 SQL 内联接 SQL 左联接 SQL 右联接 SQL 全联接 SQL 自联接 SQL UNION SQL GROUP BY SQL HAVING SQL EXISTS SQL ANY, ALL SQL SELECT INTO SQL INSERT INTO SELECT SQL CASE SQL 空函数 SQL 存储过程 SQL 注释 SQL 运算符

SQL 数据库

SQL 创建数据库 SQL 删除数据库 SQL 数据库备份 SQL 创建表 SQL 删除表 SQL 修改表 SQL 约束 SQL 非空 SQL 唯一 SQL 主键 SQL 外键 SQL 检查 SQL 默认值 SQL 索引 SQL 自动递增 SQL 日期 SQL 视图 SQL 注入 SQL 托管 SQL 数据类型

SQL 参考

SQL 关键字 MySQL 函数 SQL Server 函数 MS Access 函数 SQL 快速参考

SQL 例子

SQL 例子 SQL 编辑器 SQL 测验 SQL 练习 SQL Server SQL 集训营 SQL 证书

SQL 连接


SQL 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"。上面两个表之间的关系是 "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 (OUTER) JOIN: 返回左侧表中的所有记录以及右侧表中匹配的记录
  • RIGHT (OUTER) JOIN: 返回右侧表中的所有记录以及左侧表中匹配的记录
  • FULL (OUTER) JOIN: 返回左侧或右侧表中存在匹配项时的所有记录

SQL INNER JOIN  SQL LEFT JOIN  SQL RIGHT JOIN  SQL FULL OUTER JOIN


通过练习测试自己

练习

JOIN 子句中插入缺失的部分,以使用两个表 OrdersCustomers 中的 CustomerID 字段作为两个表之间的关系来连接这两个表。

SELECT *
FROM Orders
LEFT JOIN Customers
=
;

开始练习


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.