para mail funcion formulario enviar envia ejemplo correos correo configurar codigo php mysql mysqli left-join inner-join

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



enviar formulario a correo php (3)

El operador de MySQL UNION le permite combinar dos o más conjuntos de resultados de varias tablas en un solo conjunto de resultados

SELECT Contact_Email FROM email1 UNION SELECT Contact_Email FROM email2 UNION SELECT Contact_Email FROM email3 . . UNION SELECT Contact_Email FROM email11

De manera predeterminada, el operador de UNION elimina las filas duplicadas del resultado, incluso si no utiliza explícitamente el operador DISTINCT.

Tengo 11 tablas [email1, email2, email3, ... email11]

<?php $con = mysql_connect("localhost", "root", ""); $db = mysql_select_db("email-db", $con); $sql = "SELECT Contact_Email FROM email1, email2, email3, email4, email5"; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { ?> <tr> <td><? echo $row[''Contact_Email'']; ?></td> <td><? echo ''<br>''; ?></td> </tr> <? } ?>

Lo que realmente quiero hacer es seleccionar todos los correos electrónicos de todas las tablas usando join en todos ellos. ¿Cómo puede hacerse esto?


$sql = "SELECT Contact_Email FROM email1 UNION ALL SELECT Contact_Email FROM email2 UNION ALL SELECT Contact_Email FROM email3 UNION ALL SELECT Contact_Email FROM email4 UNION ALL SELECT Contact_Email FROM email5 UNION ALL SELECT Contact_Email FROM email6 UNION ALL SELECT Contact_Email FROM email7 UNION ALL SELECT Contact_Email FROM email8 UNION ALL SELECT Contact_Email FROM email9 UNION ALL SELECT Contact_Email FROM email10 UNION ALL SELECT Contact_Email FROM email11";

usé esto


Dado que la sociedad votó para cerrar duplicar la forma de mostrar la dirección de correo electrónico duplicado

Aquí hay un ejemplo para 4 tablas que puede ampliar 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 debes dejar de usar las funciones de 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>'';

ACTUALIZACIÓN Utilice 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>'';