SQL语句基础学习之连接
我们引入连接的概念。为了理解这种联系,我们需要使用许多我们以前介绍过的指令。让我们首先假设我们有下面两个表
商店信息表
商店名称销售日期洛杉矶1500美元1999年1月5日旧金山300美元1999年1月8日波士顿700美元1999年1月8日
地理表
region _ name store _ name
东波士顿
东纽约
西洛杉矶
西圣地亚哥
我们需要知道每个地区的营业额。地理这个表告诉我们每个区有哪些店铺,Store_Information告诉我们每个店铺的营业额。如果我们想知道每个区的营业额,我们需要将这两个不同表格中的信息串联起来。当我们仔细理解这两个表时,会发现它们可以通过同一个字段store_name连接起来。让我们先列出SQL语句,然后讨论每个子句的含义:
SELECT A1.region_name REGION,SUM(A2。Sales)销售来自地理位置A1,Store_Information A2,其中A1 . Store _ name = A2 . Store _ name GROUP BY A1 . region _ name
结果:
区域销售
东部700美元
西部2050美元
在第一行中,我们告诉SQL选择两个字段:第一个字段是Geography表中的Region_name字段(我们取了一个别名叫做Region);第二个字段是Store_Information表中的sales字段(别名SALES)。请注意,我们在这里使用表别名:Geography表的别名是A1,Store_Information表的别名是A2。如果我们不使用表别名,第一行将变成
SELECT geography . REGION _ name REGION,SUM(Store_Information。销售)销售
显然,这要复杂得多。这里我们可以看到表别名的作用:它可以让SQL语句变得容易理解,尤其是当这个SQL语句覆盖了几个不同的表时。
接下来,我们来看第三行,也就是WHERE子句。这是我们解释连接条件的地方。这里,我们需要确认Geography表中Store_name字段的值等于Store_Information表中store_name字段的值。这个WHERE子句是连接的灵魂,因为它的作用是确保两个表之间的连接是正确的。如果WHERE子句是错误的,我们可能会得到一个笛卡尔连接。笛卡尔连接将使我们得到所有两个表的每两行之间的所有可能的组合。在这个例子中,笛卡尔连接将给出4 x 4 = 16行的结果。
位律师回复
0条评论