SQL语句基础学习之外部连接

SQL语句基础学习之外部连接,第1张

SQL语句基础学习之外部连接,第2张

我们之前看到的左连接也称为内连接。在这种情况下,两个表必须具有相同的值,将选择哪个数据。如果要在一个表中列出每一项的数据,无论其值是否出现在另一个表中,应该怎么做?这时,我们需要使用SQL外部连接指令。

外部连接的语法因数据库而异。例如,在Oracle上,我们将在WHERE子句中要选择所有数据的表后添加一个“(+)”,表示我们需要该表中的所有数据。

假设我们有下面两个表:

商店信息表商店名称日期洛杉矶1500美元1999年1月5日旧金山300美元1999年1月8日波士顿700美元1999年1月8日


地理表单

region _ name store _ name
东波士顿
东纽约
西洛杉矶
西圣地亚哥

我们需要知道每个商店的营业额。如果我们使用普通连接,我们将会错过商店“纽约”,因为它不存在于Store_Information表中。因此,在这种情况下,我们需要用外部连接将这两个表连接起来:

SELECT A1.store_name,SUM(A2。Sales)来自地理A1的销售,Store_Information A2,其中A1 . Store _ name = A2 . Store _ name(+)GROUP BY A1 . Store _ name

这里我们使用Oracle的外部连接语法。

结果:

store _ name SALES
波士顿700美元
纽约
洛杉矶1800美元
圣地亚哥250美元

注意:当第二个表没有相应的数据时,SQL将返回一个空值。在本例中,“纽约”在Store_Information表中不存在,因此它的“销售”字段为空。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQL语句基础学习之外部连接

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情