作者:章朔
来源:http://www.cnblogs.com/reaptomorrow-flydream/
SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN,其中前一种是内连接,后三种是外链接。
2024年08月01日
作者:章朔
来源:http://www.cnblogs.com/reaptomorrow-flydream/
SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN,其中前一种是内连接,后三种是外链接。
2024年08月01日
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
'''
2024年08月01日
Oracle中,连接查询(Join)和子查询(Subquery)都是用于组合来自不同表或查询结果的数据的常用技术。但是,它们在使用场景、性能和效率方面存在一些差异。
连接查询
连接查询通过在两个或多个表之间建立关系来组合来自不同表的数据。常用的连接查询类型包括:
2024年08月01日
引言:本文将深入探讨这些连接类型的概念、语法及其应用场景,帮助读者全面理解如何利用这些技术实现复杂的数据查询和分析。在数据库查询中,连接操作使得我们可以根据指定的关联条件(join condition)联合两个或多个表中的数据,从而创建出一个新的结果集。连接操作不仅仅是将数据简单地拼接在一起,更是一种强大的工具,能够在不同表之间建立复杂的关系,支持多种查询需求,从简单的数据匹配到复杂的多层级数据分析。
2024年04月22日
Hive sql和spark sql都支持相同的sql语法,基本所有支持sql的数据库或sql引擎,支持的语法都基本相同。数据库领域得join者得天下。
2024年04月22日
大家在做项目中为了不使数据库出现大量的冗余数据,一定会在每张表中设置一个主键,用来链接区分每一张表。而多表连接正是是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
首先跟大家讲一下小编所知的多表(3个表及以上)联合查询的办法,
2024年04月22日
MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究。写的如果不好,还请大家见谅。
2024年04月22日
SQL JOIN 用于组合多个表并根据关系数据库中的公共字段检索数据。
我们可以使用规范化来确保和提高数据的完整性。 在各种规范化形式中,数据被分布到多个逻辑表中。 这些表使用引用约束(主键和外键)来强制 SQL Server 表中的数据完整性。