玖叶教程网

前端编程开发入门

SQL的各种连接Join详解,都需要熟练掌握!

作者:章朔

来源:http://www.cnblogs.com/reaptomorrow-flydream/


SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN,其中前一种是内连接,后三种是外链接。

pandas 库函数方法集合--merge_04left_right_outer_inner_join

20240115星期一:

# 使用how参数合并
# 通过how参数可以确定 DataFrame 中要包含哪些键,如果在左表、右表都不存的键,那么合并后该键对应的值为 NaN。为了便于大家学习,我们将 how 参数和与其等价的 SQL 语句做了总结:

# Merge方法  等效 SQL 描述
# left LEFT OUTER JOIN    使用左侧对象的key
# right    RIGHT OUTER JOIN   使用右侧对象的key
# outer    FULL OUTER JOIN    使用左右两侧所有key的并集
# inner    INNER JOIN 使用左右两侧key的交集

# 1) left join
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#以left侧的subject_id为键
print(pd.merge(left,right,on='subject_id',how="left"))
'''
   id_x  Name_x subject_id  id_y Name_y
0     1   Smith       sub1   NaN    NaN
1     2   Maiki       sub2   1.0   Bill
2     3  Hunter       sub4   2.0   Lucy
3     4   Hilen       sub6   4.0   Mike
'''

# 2) right join
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#以right侧的subject_id为键
print(pd.merge(left,right,on='subject_id',how="right"))
'''
   id_x  Name_x subject_id  id_y Name_y
0   2.0   Maiki       sub2     1   Bill
1   3.0  Hunter       sub4     2   Lucy
2   4.0   Hilen       sub6     4   Mike
3   NaN     NaN       sub3     3   Jack
'''

# 3) outer join(并集)
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#求出两个subject_id的并集,并作为键
print(pd.merge(left,right,on='subject_id',how="outer"))
'''
   id_x  Name_x subject_id  id_y Name_y
0   1.0   Smith       sub1   NaN    NaN
1   2.0   Maiki       sub2   1.0   Bill
2   3.0  Hunter       sub4   2.0   Lucy
3   4.0   Hilen       sub6   4.0   Mike
4   NaN     NaN       sub3   3.0   Jack
'''

# 4) inner join(交集)
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#求出两个subject_id的交集,并将结果作为键
print(pd.merge(left,right,on='subject_id',how="inner"))
'''
   id_x  Name_x subject_id  id_y Name_y
0     2   Maiki       sub2     1   Bill
1     3  Hunter       sub4     2   Lucy
2     4   Hilen       sub6     4   Mike
'''

Oracle中,连接查询(Join)和子查询

Oracle中,连接查询(Join)和子查询(Subquery)都是用于组合来自不同表或查询结果的数据的常用技术。但是,它们在使用场景、性能和效率方面存在一些差异。

连接查询

连接查询通过在两个或多个表之间建立关系来组合来自不同表的数据。常用的连接查询类型包括:

MySQL 外连接、内连接与自连接的区别?

引言:本文将深入探讨这些连接类型的概念、语法及其应用场景,帮助读者全面理解如何利用这些技术实现复杂的数据查询和分析。在数据库查询中,连接操作使得我们可以根据指定的关联条件(join condition)联合两个或多个表中的数据,从而创建出一个新的结果集。连接操作不仅仅是将数据简单地拼接在一起,更是一种强大的工具,能够在不同表之间建立复杂的关系,支持多种查询需求,从简单的数据匹配到复杂的多层级数据分析。

聊聊flink Table的Joins

本文主要研究一下flink Table的Joins

实例

Inner Join

Oracle之表间关联查询

表间关联查询

内连接:

语法: join关键字连接表 表1 join表2 on条件

Hive sql和spark sql的join原理

?Hive sql和spark sql语法

Hive sql和spark sql都支持相同的sql语法,基本所有支持sql的数据库或sql引擎,支持的语法都基本相同。数据库领域得join者得天下。

SQL Server中的 多表关联 查找数据

大家在做项目中为了不使数据库出现大量的冗余数据,一定会在每张表中设置一个主键,用来链接区分每一张表。而多表连接正是是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

首先跟大家讲一下小编所知的多表(3个表及以上)联合查询的办法,

MySQL 面试题超强总结

MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究。写的如果不好,还请大家见谅。

SQL 连接类型概述和示例

SQL JOIN 用于组合多个表并根据关系数据库中的公共字段检索数据。

我们可以使用规范化来确保和提高数据的完整性。 在各种规范化形式中,数据被分布到多个逻辑表中。 这些表使用引用约束(主键和外键)来强制 SQL Server 表中的数据完整性。

<< < 1 2 3 4 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言