Intereting Posts
Функция Move_uploaded_file () не работает как назначить значение переменной javascript переменной php Zend 2 :: легко получить путь к общей папке или basePath () в действии контроллера как получить весь массив объектов с одним значением? Строки MySQL добавлены дважды Проблема. Объявление XML разрешено только в начале документа. Ошибка: вызов функции-члена get () для не-объекта PHP для написания символов вкладки внутри файла? Лучший способ повторить имя пользователя на каждой странице с помощью сеансов? Как выполнить единичный тест наследующих объектов? Требуется ли htmlspecialchars () для вывода ALL? Проверьте, существует ли электронная почта в базе данных Сессия PHP слишком рано уничтожена в мобильных браузерах (браузерах) Как извлечь значение из объекта json с помощью javascript Раздражающая ошибка PHP: «Строгие стандарты: только переменные должны передаваться по ссылке в"

Как найти, какие письма находятся в одних и тех же списках?

У меня есть 11 таблиц [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> <? } ?> 

Что я на самом деле хочу сделать, чтобы выбрать все электронные письма из всех таблиц, используя объединение на всех из них. Как это можно сделать?

Solutions Collecting From Web of "Как найти, какие письма находятся в одних и тех же списках?"

Оператор MySQL UNION позволяет объединять два или более набора результатов из нескольких таблиц в единый результирующий набор

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

По умолчанию оператор UNION удаляет повторяющиеся строки из результата, даже если вы не используете оператор DISTINCT явно.

 $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"; 

я использовал это

Поскольку общество голосовало, чтобы закрыть дубликат того, как отображать дублированный адрес электронной почты

Вот пример для 4 таблиц, которые вы можете продлить до 11, если вам нужно. Извините, но я не отлаживал этот код, я думаю, основным препятствием был запрос mysql для получения правильных значений из базы данных.

И вы определенно должны прекратить использовать функции 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>'; 

UPDATE Используйте тот же запрос, но измените выходную часть на:

 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>';