PHP-连接多个未按预期工作的表

PHP-连接多个未按预期工作的表,php,mysql,sql,database,Php,Mysql,Sql,Database,我的数据库中有两个表 我想比较表1的每一行电子邮件和表2的每一行电子邮件,如果它们的内容匹配,那么我想将表2的Mac存储到结果表的Mac 这是表1 这是表2 这是结果表 目前我正在使用这段代码比较和插入结果表中的数据。它没有按预期运行。它甚至没有比较Email1和Email2,而是在表中多次转储valuesMac,就像只运行一次脚本时28次一样 我很清楚以前也有人问过类似的问题,但没有一个问题像我的问题,也没有完整的答案,这就是我为什么问的原因。您在连接条件中有拼写错误: …表1上的内部联接表1

我的数据库中有两个表

我想比较表1的每一行电子邮件和表2的每一行电子邮件,如果它们的内容匹配,那么我想将表2的Mac存储到结果表的Mac

这是表1 这是表2 这是结果表 目前我正在使用这段代码比较和插入结果表中的数据。它没有按预期运行。它甚至没有比较Email1和Email2,而是在表中多次转储valuesMac,就像只运行一次脚本时28次一样


我很清楚以前也有人问过类似的问题,但没有一个问题像我的问题,也没有完整的答案,这就是我为什么问的原因。

您在连接条件中有拼写错误:


…表1上的内部联接表1.email=table2.email2

您的代码中存在错误。您在查询的ON子句中使用了两次table1:

insert into result_table (mac)
select table2.mac from table2
inner join table1 on table1.email = table2.email

您的内部联接似乎没有用,因为您在table1.email=table1.email上联接


您需要在表2上加入。电子邮件

部分问题在于您的加入看起来在同一个字段上。尝试更改您的联接,使table1.email=table2.email您的内部联接是错误的,如果您的列被调用是正确的,那么您应该具有以下内容:

table1.email = table2.email2

这会满足你的要求

insert into results (mac)
    select t2.mac
    from table1 t1
    join table2 t2
        on t1.email = t2.email;
它的SQL小提琴:

@jarlh编辑错误将其插入结果\u表mac值从表2中选择table2.mac在表1上内部连接table1.email=table2.email尝试了此操作,现在它没有插入任何内容。此外,无错误不,在插入到…的上下文中不使用值。。。选择查询。尝试只执行select语句。它是否返回任何内容?我假设“插入结果\表mac值选择表2.mac,从表1上的表2内部联接表1。email=表2。email`但不确认,先生。@devpro否,该语句是正确的。我将设置一个sqlfiddle演示。可能选择不起作用,或者这个table1.email=table2.email2您能在mysqli\u查询后添加这个吗。。。或diemysqli_错误;
<?php
include 'conn.php';
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
$query = mysqli_query($conn, "insert into result_tbale(mac)
select table2.mac from table2
inner join table1 on table1.email = table1.email");

?>
insert into result_table (mac)
select table2.mac from table2
inner join table1 on table1.email = table2.email
table1.email = table2.email2
insert into results (mac)
    select t2.mac
    from table1 t1
    join table2 t2
        on t1.email = t2.email;