모든 반송 된 전자 메일이 내 데이터베이스의 테이블로 전송됩니다. 내 활성 이메일로 채워지는 다른 테이블의 필드와 비교하려고합니다. 다음 함수를 사용하면 "IN"을 사용할 때 아무것도 반환하지 않으며 "NOT IN"을 사용할 때는 모두 반환하지만 두 테이블에 일치하는 전자 메일이 있다는 것을 알고 있습니다. 내가 잘못하고있는거야?IN 연산자의 PHP/MySQL 문제
<?php
function CompareEmails() {
$mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") ";
echo $mysqli->connect_error;
$mysqli->close();
}
$bademails = array();
$values = $mysqli->query("SELECT bad_emails.emails FROM bad_emails ");
while ($row = $values->fetch_assoc()) {
$bademails[] = $row['emails'];
}
$query = "SELECT email_database.customer_id, email_database.email
FROM email_database
WHERE email_database.email IN('" . implode("' , '", $bademails) . "')
ORDER BY email_database.customer_id DESC";
$values2 = $mysqli->query($query);
while ($row2 = $values2->fetch_assoc()) {
echo $row2['customer_id'] . " " . $row2['email'] . "</br>";
}
}
?>
bad_emails에 가입 된 email_database를 선택하여이 쿼리를 수행 할 수 있습니다. – Scuzzy
이 조인으로 시작되었습니다. 이제이 쿼리를 mike의보다 효율적인 조인으로 반환했지만 여전히 정확한 값을 반환하지 않습니다. –