【财码精华】SQL数据库—数据查询语言DQL_连表查询

发布于 2021-09-24 08:06

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 business_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.公司;
END

©图片版权归财码python所有,如对版权有异议,请联系后台议定处理。

本文来源:财码Python官网《SQL数据库基础》课程

财码Python撰写发布,如需转载请务必注明以上信息。


关于我们

财码社区为财务人量身定制从点、线、面到多维一体的数字化学习课程,为财务人提供“基础+案例+实践”的系统学习方案,帮助财务人在转型时代中抢占先机,成为既懂技术又懂财务的复合型人才!

看视频课程!

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材