SQL JOIN语句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
SQL JOIN分类包括:
1)内连接 ( INNER JOIN | JOIN ):如果表中有至少一个匹配,则返回行。
语法:SELECT 字段1,字段2,… FROM 表1 INNER JOIN 表2 ON 表1.字段x = 表2.字段y;
2)左外连接(LEFT JOIN):从左表(表1)返回所有的行,即使右表(表2)中没有匹配。如果右表中没有匹配,则结果为NULL。
语法:SELECT 字段1,字段2,… FROM 表1 LEFT JOIN 表2 ON 表1.字段x = 表2.字段y;
3)右外连接(RIGHT JOIN) :从右表(表2)返回所有的行,即使左表(表1)中没有匹配。如果左表中没有匹配,则结果为NULL。
语法:SELECT 字段1,字段2,… FROM 表1 RIGHT JOIN 表2 ON 表1.字段x = 表2.字段y;
操作演示
实例:将fin_data中的business_data和sales_data,按照年月和公司拼接在一起,实现财务、业务数据对比分析。
1)先查询sales_data表:
SELECT * FROM sales_data;
2)将business_data 和sales_data进行左连接查询:
SELECT business_data.年,business_data.月,business_data.公司,营业收入, 营业成本,利润总额,`净 利 润`,资产合计,负债合计,权益合计,销售量 FROM business_data LEFT JOIN sales_data
ON (business_data.`年` = sales_data.`年` AND business_data.`月` = sales_data. `月` AND busines s_data.`公司` = sales_data.`公司`);
多表等值连接
多表等值连接也可以实现连表查询(等效于内连接)。
多表等值连接与单表查询类似,都是SELECT语句。把多个表放到FROM后,并用逗号隔。开可使用AS关键字取别名,便于引用。如无重名查询字段则可省略数据表的指定。
语法:SELECT 字段1,字段2 FROM 表1,表2 WHERE 表1.等值字段 = 表2.等值字段
实例:用多表等值连接的方法实现财务、业务数据对比分析
SELECT business_data.年,business_data. business_data.公司,营业收入, 营业成本,利润总额,`净 利 润`,资产合计,负债合计,权益合计,销售量
FROM business_data,sales_data
WHERE business_data.年=sales_data.年
AND business_data.月=sales_data.月
AND business_data.公司=sales_data.公司;
©图片版权归财码python所有,如对版权有异议,请联系后台议定处理。
本文来源:财码Python官网《SQL数据库基础》课程
财码Python撰写发布,如需转载请务必注明以上信息。
财码社区为财务人量身定制从点、线、面到多维一体的数字化学习课程,为财务人提供“基础+案例+实践”的系统学习方案,帮助财务人在转型时代中抢占先机,成为既懂技术又懂财务的复合型人才!
相关素材