SQL(二)数据库 合并表格

我们常常需要把不同表格里的不同列,基于一个共同的列(索引),合并成一张表,这时候就需要JOIN了。

SQL JOIN有四种类型:

  • INNER JOIN:如果表中有至少一个匹配,则返回行  (相当于集合中的交运算)
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行 (包含左表全部内容)
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行  (包含右表全部内容)
  • FULL JOIN:只要其中一个表中存在匹配,则返回行   (相当于集合中的并运算)

SQL JOIN 语法:

SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name1=table2.column_name2;

解释:如果table1中的column_name1等于table2中的column_name2,就将从table1、table2中选出来的列合并成一条记录

四种类型:

1、INNER JOIN

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
INNER JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count;

其中 ORDER BY 是将合并后的表格按照access_log.count列升序排列

                                                        

2、LEFT JOIN

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
LEFT JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;

其中 ORDER BY  DESC 是将合并后的表格按照access_log.count列降序排列

                                                                   

3、RIGHT JOIN

SELECT Websites.name, access_log.count, access_log.date
FROM access_log
RIGHT JOIN Websites
ON access_log.site_id=Websites.id
ORDER BY access_log.count DESC;

                                                               

4、FULL OUTER JOIN

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
FULL OUTER JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;

                                                                       

注意:

1、INNER JOIN 与 JOIN 是相同的。

2、在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。(如SQL SEVER)

3、在某些数据库中,RIGHT JOIN 称为 RIGHT OUTER JOIN。(如SQL SEVER)

 

参考:

[1] http://www.runoob.com/sql/sql-distinct.html

[2] http://www.w3school.com.cn/sql/sql_distinct.asp

  • 0
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值