sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo encontrar qué correos electrónicos están en las mismas listas?

Dado que la comunidad votó para cerrar duplicados cómo mostrar direcciones de correo electrónico duplicadas

Aquí hay un ejemplo para 4 mesas, puede extenderlo hasta 11 si lo necesita. Lo siento, pero no depuré este código, supongo que el principal obstáculo fue la consulta mysql para obtener los valores correctos de la base de datos.

¡Y definitivamente deberías dejar de usar las funciones mysql*!

$sql ="SELECT t.Contact_Email,
  e1.Contact_Email email1,
  e2.Contact_Email email2,
  e3.Contact_Email email3,
  e4.Contact_Email email4
FROM (
SELECT e.Contact_Email FROM email1 e
UNION ALL 
SELECT e.Contact_Email FROM email2 e
UNION ALL 
SELECT e.Contact_Email FROM email3 e
UNION ALL 
SELECT e.Contact_Email FROM email4 e
) t
LEFT JOIN email1 e1
ON t.Contact_Email = e1.Contact_Email
LEFT JOIN email2 e2
ON t.Contact_Email = e2.Contact_Email
LEFT JOIN email3 e3
ON t.Contact_Email = e3.Contact_Email
LEFT JOIN email4 e4
ON t.Contact_Email = e4.Contact_Email";

echo '<table><thead><tr><th>Email</th>';
for ($i=1;$i<5; $i++){
    echo "<th>email $i</th>";
}
echo '</tr></thead><tbody>';

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    echo '<tr><td>'.$row['Contact_Email'].'</td>';
    for ($i=1;$i<5; $i++){
        echo '<td>'.(empty($row['email'.$i])?'no':'yes').'</td>';
    }
    echo '</tr>';
}
echo '</tbody></table>';

ACTUALIZAR Use la misma consulta pero cambie la parte de salida a:

echo '<table><thead><tr><th>Email</th>';
for ($i=1;$i<5; $i++){
    echo "<th>email $i</th>";
}
echo "<th>Total (yes)</th>";
echo "<th>Total (no)</th>";
echo '</tr></thead><tbody>';

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    $yesCount = 0;
    $noCount = 0;
    echo '<tr><td>'.$row['Contact_Email'].'</td>';
    for ($i=1;$i<5; $i++){
        echo '<td>'.(empty($row['email'.$i])?'no':'yes').'</td>';
        if (empty($row['email'.$i])) {
            $noCount++;
        } else {
            $yesCount++;
        }
    }
    echo '<th>'.$yesCount.'</th>';
    echo '<th>'.$noCount.'</th>';
    echo '</tr>';
}
echo '</tbody></table>';