我的数据库中有两个表。
我想将Email
的{{1}}的 每行 与 每行进行比较<{1}} table-1
的{{1}}如果其内容匹配,则我希望将Email2
table-2
存储到Mac
table-2
。
Mac
Result table
Name Email
name1 user1@xy.com
name2 user2@xy.com
目前我正在使用此代码来比较和插入result_table中的数据。它未按预期运行。 它甚至没有比较Email1和Email2,它只是在表格中多次转储值(Mac),就像在运行脚本上一次只转发28次一样。
Email2 Mac
user1@xy.com 77777
abc@xy.com 88888
我很清楚之前会问过类似的问题,但是没有一个像我的问题或完整的答案那就是我问的原因
答案 0 :(得分:4)
您在加入条件中输入了拼写错误:
... table1.email = table 2 .email 2
上的内连接table1答案 1 :(得分:3)
您的代码中存在错误。您在查询的table1
子句中使用ON
两次:
insert into result_table (mac)
select table2.mac from table2
inner join table1 on table1.email = table2.email
答案 2 :(得分:0)
你的内部联接似乎没用,因为你加入了table1.email=table1.email.
您需要加入table2.email
答案 3 :(得分:0)
您的部分问题是您的联接看起来在同一个字段上。尝试更改您的联接table1.email = table2.email
答案 4 :(得分:0)
您的内部联接是错误的,如果您的列被调用的是正确的,那么您应该具有以下内容:
table1.email = table2.email2
答案 5 :(得分:0)
这将做你想要的事情
insert into results (mac)
select t2.mac
from table1 t1
join table2 t2
on t1.email = t2.email;
它的SQL小提琴: http://sqlfiddle.com/#!9/5d311/1