new_insert_df = df.join(landing_merge_df, primary_keys_list, "left_anti")
时间: 2023-11-12 16:09:10 浏览: 30
这段代码是什么意思?
这段代码是将两个数据框(df和landing_merge_df)按照主键列表(primary_keys_list)进行左反连接(left_anti join),返回的是df中有但landing_merge_df中没有的数据。也就是说,返回的是df中的数据,但是在landing_merge_df中不存在的数据。
相关问题
new_insert_df = df.join(landing_merge_df, primary_keys_list, "left_anti")转化为sql语句
这段代码可以转换为以下SQL语句:
```
SELECT df.*
FROM df
LEFT JOIN landing_merge_df
ON df.primary_keys_list = landing_merge_df.primary_keys_list
WHERE landing_merge_df.primary_keys_list IS NULL;
```
其中,`df`和`landing_merge_df`分别代表两个数据表,`primary_keys_list`是主键列的列表。这条SQL语句的作用是查询在`df`表中存在,但在`landing_merge_df`表中不存在的记录。
update_df = df.alias('l').join(landing_merge_df.alias('lm'), on=primary_keys_list, how="inner")转为sql
下面是将上述代码转化为 SQL 语句的方法:
假设 df 表和 landing_merge_df 表已经在数据库中创建,并且它们的表名分别为 df_table 和 landing_merge_table。
首先,我们需要将 df 表和 landing_merge_df 表进行别名处理:
df 表别名为 l,landing_merge_df 表别名为 lm。
接下来,我们需要指定连接条件和连接方式。根据代码中的参数,连接条件为 primary_keys_list,连接方式为 inner join。
在 SQL 中,连接条件使用 ON 关键字指定,连接方式使用 INNER JOIN 关键字指定。
最终的 SQL 语句如下:
SELECT *
FROM df_table AS l
INNER JOIN landing_merge_table AS lm
ON l.primary_key_1 = lm.primary_key_1
AND l.primary_key_2 = lm.primary_key_2
AND ...
等等