Sql取得两表关联数据

原始表

LEFT JOIN

从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

RIGHT JOIN 是 LEFT JOIN 的反操作,即会从右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。

列出所有的人,以及他们的定购 - 如果有的话

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons
LEFT JOIN Orders ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

INNER JOIN

至少存在一个匹配时才返回行,inner join 与 join 相同

列出所有人的定购

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons
INNER JOIN Orders ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 “Persons” 中的行在 “Orders” 中没有匹配,就不会列出这些行。

FULL JOIN

只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。

列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons
FULL JOIN Orders ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 “Persons” 中的行在表 “Orders” 中没有匹配,或者如果 “Orders” 中的行在表 “Persons” 中没有匹配,这些行同样会列出。

UNION

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。需要注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

默认地,UNION 操作符选取不同的值,即如果两个表在有相同的数据,只会显示一笔。如果允许重复的值,需要使用 UNION ALL。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值