Mysql准备工作:
T1
T2
T3
操作 | mysql | mysql结果 |
inner join | select * from T1 inner join T2 on T1.user_id = T2.user_id | |
left outer join | select * from T1 left outer join T2 on T1.user_id=T2.user_id | |
right outer join | select * from T1 right outer join T2 on T1.user_id=T2.user_id | |
full outer join | select * from T1 left join T2 on T1.user_id = T2.user_id union select * from right join T2 on T1.user_id = T2.user_id ; |
|
cross join | select * from T1 cross join T2 |
result= user_id user_name password score level
0 1 Jack Jackpwd 20 3
1 3 NaN NaN 50 6
######################################################################################
Python准备工作:
import pandas as pd
T1= {'user_id': [1, 2],
'user_name': ['Jack','owen'],
'password': ['Jackpwd','owenpwd']
}
T2= {
'user_id': [1, 3],
'score': [20,50],
'level': [3,6]
}
T1=pd.DataFrame(T1)
print(T1)
T2=pd.DataFrame(T2)
print(T2)
mysql操作 | python代码 | python代码运行结果 |
inner join | result=pd.merge(left=T1, right=T2, how='inner', left_on='user_id', right_on='user_id') | user_id user_name password score level 1 Jack Jackpwd 20 3 |
lefter outer join | result=pd.merge(left=T1, right=T2, how='left', left_on='user_id', right_on='user_id') | user_id user_name password score level 1 Jack Jackpwd 20.0 3.0 2 owen owenpwd NaN NaN |
right outer join | result=pd.merge(left=T1, right=T2, how='right', left_on='user_id', right_on='user_id') | user_id user_name password score level 1 Jack Jackpwd 20 3 3 NaN NaN 50 6 |
full outer join | ||
cross join |