python - 如何使用 read_sql 插入列匹配和不匹配的标志

标签 python mysql pandas

我试图在两个不同表的比较列之后插入一个标志(匹配/不匹配)。我能够比较两个 mysql 表列但不知道如何插入标志列并获取状态(匹配/不匹配)

下面是一个例子,考虑2个mysql表:

选项卡1:

email
abc@gamil.com
xyz@email.com
ijk@gmail.com
ghi@gmail.com
pqr@gmail.com
yup@gmail.com

选项卡2:

email
ijk@gmail.com
yup@gmail.com

选项卡3:

email
xyz@email.com
pqr@gmail.com

现在我想要这样的输出:

email           valid
abc@gamil.com   non-match
xyz@email.com   match
ijk@gmail.com   match
ghi@gmail.com   non-match
pqr@gmail.com   match
yup@gmail.com   match

尝试过 pandas:

data_2=pd.read_sql("select tab1.*,if(tab2.email  is not null ,'MATCH','NONMATCH') stataus from tab1  left join tab2 on tab1.email=tab2.email ",con=engine)

多表比较的语法不正确:

*但是我该如何处理 2 张 table :

尝试过这个方法

data_2=pd.read_sql("select tab1.,if(tab2.email and tab3.email is not null ,'MATCH','NONMATCH') tab1 left join tab2 on tab1.email=tab2 的状态.email 在 tab1.email=tab3.email",con=engine) 上左连接 tab3

最佳答案

您非常接近第一个查询,但忘记考虑另一个表:

select tab1.email, (tab2.email is not null) as is_match
from tab1
  left join tab2
on tab1.email = tab2.email;

我还会使用 bool 列而不是存储字符串“有效”和“不匹配”

关于python - 如何使用 read_sql 插入列匹配和不匹配的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926303/

相关文章:

python - turtle 删除屏幕上的文字并重写

python - 迭代 NumPy 数组中的行,如何正确处理这种 1D 与 2D 情况,我希望将 1D 视为整行进行索引?

python - 在Python中计算列表中正数的总和

Python REST mysql db.commit() 错误

php - mysql 的引用完整性

c# - 运行 2 个单独的查询但获取参数不应为空错误

python - 如何在 pandas 中转换 json 对象数组

python - 根据纬度/经度和半径选择 geopandas 或 pandas 中的行

python - 用python中的Pillow替换动态图像中的同一行像素

python - 对数据框中的值进行排序