当前位置:Gxlcms > 数据库问题 > mysql基础(5)-关联

mysql基础(5)-关联

时间:2021-07-01 10:21:17 帮助过:2人阅读

内连接
  • 仅显示满足条件的行
  • From T1,T2 where T1.ID=T2.ID
  • From T1 inner join T2 ON T1.ID=T2.ID
左连接
  • 显示左表T1中的所有行,并把右表T2中符合条件加到左表T1中
  • From T1 left out join T2 ON T1.ID=T2.ID
右连接
  • 显示右表T1中的所有行,并把左表T1中符合条件加到右表T2中
  • From T1 right outer join T2 ON T1.ID=T2.ID
全连接
  • 显示左表T1,右表T2两边中的所有行,即把左联结果表+右联结果表组合在一起,然后过滤掉重复的
  • From T1 full outer join T2 ON T1.ID=T2.ID
  文件关联类型 文件导入
  • data=pd.read_csv(/path/inputfile) #读取数据
  • df=DataFrame(data) #转换为dataframe格式
内连接
  • df3=pd.merge(df1,df2,on=‘key‘)
  • df4=pd.merge(df1,df2,on=‘key‘,how=‘inner‘)
左连接 df_l=pd.merge(df1,df2,on=‘key‘,how=‘left‘) 右连接 df_r=pd.merge(df1,df2,on=‘key‘,how=‘right‘) 全连接 df_a=pd.merge(df1,df2,on=‘key‘,how=‘outer‘)     实例 内连接:mysql> select * from stud_info T1 , stud_score T2 where T1.stud_code=T2.stud_code; 内连接:mysql> select * from stud_info T1 inner join stud_score T2 on T1.stud_code=T2.stud_code; 左连接:mysql> select * from stud_info T1 left outer join stud_score T2 on T1.stud_code=T2.stud_code; 右连接:mysql> select * from stud_info T1 right outer join stud_score T2 on T1.stud_code=T2.stud_code;     文件关联 In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: from pandas import DataFrame
In [4]: df1=DataFrame({‘key‘:[‘a‘,‘a‘,‘b‘,‘c‘,‘c‘],‘data1‘:range(5)})
In [5]: df2=DataFrame({‘key‘:[‘a‘,‘b‘,‘d‘],‘data1‘:range(3)})
技术分享
内连接【三种方式】 In [8]: df3=pd.merge(df1,df2,on=‘key‘) #把符合条件的行取出来
In [10]: df4=pd.merge(df1,df2,on=‘key‘,how=‘inner‘)
In [12]: df5=pd.merge(df1,df2,left_on="key",right_on="key",how="inner")
技术分享   左连接 In [14]: df_l=pd.merge(df1,df2,on="key",how=‘left‘)
技术分享   右连接  In [16]: df_r=pd.merge(df1,df2,on="key",how=‘right‘)  技术分享    全连接 In [18]: df6=pd.merge(df1,df2,on=‘key‘,how=‘outer‘) 技术分享   In [21]: df7=pd.merge(df1,df2,on=‘key‘,how=‘inner‘,suffixes=[‘_left‘,‘_right‘])
注释:两个表结构相同的字段,自动添加后缀_x,-y,也可自定义后缀,通过suffixes=(‘_left‘,‘_right‘)
技术分享

人气教程排行