0

単純な問題ですが、わかりません

DBの日付と日付のニュースメールに2つのテーブルがありますニュースメールにID、名前、住所、電子メールなどの列がありますID、メールの2つのフィールドがあります

ニュースメールのメールアドレスを含むすべてのレコードを日付から抽出する必要があります

私はもう試した :

SELECT * FROM date WHERE date.email IN (SELECT mail FROM newsmail);

ニュースメールからも最後の行で日付から1つのレコードのみを受け取ります

SELECT * FROM date d JOIN newsmail n ON d.email LIKE n.mail

上記と同じ結果...メールとメールフィールドはVARCHAR(50)

http://sqlfiddle.com/#!2/fad06/1/0 ここでは機能していますが、実際のDBでは機能していません

問題は、txtファイルからニュースメールにデータを挿入することでした

イニシャル :

$tmpfisier = $_FILES["upfile"]["tmp_name"];
$file_handle = fopen($tmpfisier, "r");
    while(!feof($file_handle)){
        $email_line = fgets($file_handle);
        $values = mysql_query("INSERT INTO  newsmail (`ID` ,`mail`) VALUES ( NULL ,  '$email_line')");
    }
    fclose($file_handle);

編集済み:

$tmpfisier = $_FILES["upfile"]["tmp_name"];
$file_handle = fopen($tmpfisier, "r");
    while(!feof($file_handle)){
        $raw_email_line = fgets($file_handle);
        $email_line = preg_replace('/\s\v/u', '', $raw_email_line);
        $values = mysql_query("INSERT INTO  newsmail (`ID` ,`mail`) VALUES ( NULL ,  '$email_line')");
    }
    fclose($file_handle);

問題はtxt/csvファイルのWHITESPACESでした

皆さん、ありがとうございました !!!

4

3 に答える 3

0
SELECT  a.*
FROM    Date a
        INNER JOIN NewsMail b
            ON a.email LIKE CONCAT('%', b.mail, '%')
于 2013-04-04T12:21:04.643 に答える
0

これを使って:

SELECT d.*
FROM date d
INNER JOIN newsmail n
    ON n.mail = d.email;
于 2013-04-04T12:21:11.393 に答える