我试图在两个不同表的比较列之后插入一个标志(匹配/不匹配)。我能够比较两个 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/