SQL教程(高级篇)(4)

2019-08-03 10:39

我们可以通过引用两个表的方式,从两个表中获取数据:

谁订购了产品,并且他们订购了什么产品?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders

WHERE Persons.Id_P = Orders.Id_P

结果集:

LastName Adams Adams Carter Carter FirstName John John Thomas Thomas OrderNo 22456 24562 77895 44678 SQL JOIN - 使用 Join 除了上面的方法,我们也可以使用关键词 JOIN 来从两个表中获取数据。

如果我们希望列出所有人的定购,可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons

INNER JOIN Orders

ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName

结果集:

LastName Adams Adams FirstName John John OrderNo 22456 24562 Carter Carter Thomas Thomas 77895 44678 不同的 SQL JOIN

除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以其他几种连接。

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

? JOIN: 如果表中有至少一个匹配,则返回行

? LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 ? RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 ? FULL JOIN: 只要其中一个表中存在匹配,就返回行

SQL INNER JOIN 关键字

SQL INNER JOIN 关键字

在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

INNER JOIN 关键字语法 SELECT column_name(s) FROM table_name1

INNER JOIN table_name2

ON table_name1.column_name=table_name2.column_name

注释:INNER JOIN 与 JOIN 是相同的。

原始的表 (用在例子中的):

\表: Id_P 1 2 3 \表:

LastName Adams Bush Carter FirstName John George Thomas Address Oxford Street Fifth Avenue Changan Street City London New York Beijing Id_O 1 2 3 4 5 OrderNo 77895 44678 22456 24562 34764 Id_P 3 3 1 1 65 内连接(INNER JOIN)实例

现在,我们希望列出所有人的定购。

您可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders

ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

结果集:

LastName Adams Adams Carter Carter FirstName John John Thomas Thomas OrderNo 22456 24562 77895 44678 INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 \中的行在 \中没有匹配,就不会列出这些行。

SQL LEFT JOIN 关键字

? ?

SQL LEFT JOIN 关键字

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

LEFT JOIN 关键字语法 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2

ON table_name1.column_name=table_name2.column_name

注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

原始的表 (用在例子中的):

\表: Id_P 1 2 3 \表: Id_O 1 2 3 4 OrderNo 77895 44678 22456 24562 Id_P 3 3 1 1 LastName Adams Bush Carter FirstName John George Thomas Address Oxford Street Fifth Avenue Changan Street City London New York Beijing 5 34764 65 左连接(LEFT JOIN)实例 现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。

您可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders

ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

结果集:

LastName Adams Adams Carter Carter Bush FirstName John John Thomas Thomas George OrderNo 22456 24562 77895 44678 LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。

SQL RIGHT JOIN 关键字

? ?

SQL RIGHT JOIN 关键字

RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

RIGHT JOIN 关键字语法


SQL教程(高级篇)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:量本利分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: