Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để tìm những email nào trong cùng một danh sách?

Vì cộng đồng đã bỏ phiếu để đóng nên cách hiển thị địa chỉ email trùng lặp

Đây là một ví dụ cho 4 bảng, bạn có thể mở rộng nó cho đến 11 nếu bạn cần. Xin lỗi, nhưng tôi đã không gỡ lỗi mã này, tôi đoán trở ngại chính là truy vấn mysql để nhận các giá trị chính xác từ cơ sở dữ liệu.

Và bạn chắc chắn nên ngừng sử dụng các hàm 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>';

CẬP NHẬT Sử dụng cùng một truy vấn nhưng thay đổi phần đầu ra thành:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật chế độ SQL trong MySQL

  2. Mã API đầu tiên của bạn với Node.js và Express:Kết nối cơ sở dữ liệu

  3. Đếm số hàng trong Doctrine 2

  4. Sắp xếp một cột VARCHAR dưới dạng FLOAT bằng cách sử dụng toán tử CAST không hoạt động trong MySQL

  5. Bạn của một người bạn trong PHP / MySQL?