10、mysql多表查询 和 重命名
前面我们都是说怎么查询一个单表,但实际的工作中,往往都是几个表数据交互的情况
有时候就需要我们根据多个表去查询我们想要的数据
举例说明:有 Store_Information 表1
Geography 表2
表2说明:
region_name 地区
store_name 店铺名
1、如果我们想知道每个地区(region_name) 的营业额(sales)呢?表1没有地区,表二没有营业额
这时候就需要我们把两个不同的表格串联起来,怎么串联呢。。。我们可以看到两个表格都有同一个栏位名
store_name
1、多表查询
语法:
select 栏位名 from 表1,表2 where 表1.相同栏位名 = 表2.相同栏位名
说明:
where 子句后面的条件,代表这两个表的链接
举例说明:
1)查看地区的销售额
语句为:
SELECT Geography.region_name, SUM(Store_Information.sales)
FROM Store_Information, Geography
WHERE Store_Information.store_name = Geography.store_name
GROUP BY Geography.region_name
语法解释:
select Geography表的region_name栏位 和 Store_Information表的sales栏位
from 来自Store_Information和 Geography表
where 这两个查询的栏位,不是同一个表,所以需要把这两个表连接起来,他们存在相同的栏位
group by 根据Geography表的region_name栏位分组
结果为:
这时候我们发现,这条语句死鬼长,还难看~~~~~怎么优化呢,这就涉及到as 重命名了
2、as 重命名
语法:
select 栏位名1,栏位名2 from 表名1 as 新表名1,表名2 as 新表名2
针对这条语句优化
SELECT a2.region_name,SUM(a1.sales)
FROM Store_Information as a1 ,Geography as a2
WHERE a1.store_name = a2.store_name
GROUP BY a2.region_name
从这语句中可以看到表名已经由a1和a2代替了