MySQL如何实现全连接,并将冗余的列合并在一起
ent_name a_attr1 a_attr2 a_attr3
e1 5 6 2020.1.2
e2 8 9 2020.2.6
e4 4 3 2019.12.6
b_attr1 b_attr2 ent_name b_attr3
czq 5 e2 6
bfx 10 e8 5
ck 2 e1 4
假设现在有a,b两张表属性分别如上,现在希望利用ent_name这个属性作为key,将两张表外连接合并实现如下效果:
ent_name a_attr1 a_attr2 b_attr2 b_attr3
e1 5 6 2 4
e2 8 9 5 6
e4 4 3
e8 0 10 5
即选择自己的目标属性进行外连接,如果直接union,会出现两列ent_name属性
这种合成用pandas的merge很好实现,但是想请问如何用mysql语句实现这种操作?
附pandas外连接使用方法,希望用mysql语句能实现等效操作
def merge_csv(in_file_list, out_file_name, column_list, default_value_list, key_column):
global output
i = 0
for file, columns in zip(in_file_list, column_list):
if i == 0:
output = pd.read_csv(file, usecols=columns, encoding='gbk')
i += 1
continue
data = pd.read_csv(file, usecols=columns, encoding='gbk')
output = pd.merge(output, data, how='outer', left_on=key_column, right_on=key_column)
# print(output.isna())
for default_value in default_value_list:
# print(default_value)
output.fillna(default_value, inplace=True)
print(output)
output.to_csv(out_file_name,index=False) # 写入csv文件