Php 从两个不存在的表中进行选择
我有两张桌子: 表1Php 从两个不存在的表中进行选择,php,sql,database,Php,Sql,Database,我有两张桌子: 表1 id int(11) name varchar(255) email varchar(255) 表2 id int(11) name varchar(255) email varchar(255) 两者都有几千个条目。问题是它们需要相同,表2缺少一些内容 如何检查表1中哪些电子邮件不在表2中,然后将其输出到页面? 我试过: $result = mysqli_query($con,"SELECT email
id int(11)
name varchar(255)
email varchar(255)
表2
id int(11)
name varchar(255)
email varchar(255)
两者都有几千个条目。问题是它们需要相同,表2缺少一些内容
如何检查表1中哪些电子邮件不在表2中,然后将其输出到页面?
我试过:
$result = mysqli_query($con,"SELECT email
FROM table2 b
WHERE NOT EXISTS (
SELECT *
FROM table1 a
WHERE a.email = b.email)");
但当我var_dump$result时,它返回Null 你落后了。您的查询将为您提供
table2
中不在table1
中的记录
你想要:
SELECT email
FROM table1 a
WHERE NOT EXISTS (
SELECT 1
FROM table2 b
WHERE b.email = a.email
)
i、 e.“从表1中选择表2中没有的电子邮件”尝试以下方法:
SELECT email FROM Table1 a WHERE email not in(select email from table2 WHERE not email is null)
如果可能,我宁愿避免嵌套选择:
SELECT a.email
FROM table1 AS a
LEFT JOIN table2 AS b
ON a.email = b.email
WHERE b.email IS NULL
应该可以找到表1中存在但表2中不存在的任何电子邮件地址
如果随后需要将该输出转储到屏幕,而不是var\u dump
ing结果(因为结果将是mysqli\u结果
对象),您可以:
$result = mysqli_query($con, "SELECT a.email FROM table1 AS a LEFT JOIN table2 AS b ON a.email = b.email WHERE b.email IS NULL");
if($result) {
var_dump($result->fetch_all());
}
else {
echo $con->error();
}
仍然var_dump为Null
$result
不应该为Null
,这听起来像是另一个问题。。。您确定连接设置正确吗?