0

私は2つのテーブルを持っています:

  1. お客様
  2. 顧客通信

customer テーブルには固有のsequence列があり、customer_communication テーブルには customer テーブルcustomer_seqのシーケンス列と一致する列があります。

customer_communication テーブルの行には datetime 列があり、これらのクエリを使用して両方のテーブルからデータを選択しています:

echo '<table width="100%" border="0" cellspacing="10" cellpadding="10">';
    //select from the customer_communication table
    $sql="SELECT * from customer where company_status = '' and no_communication = '' order by company ASC ";
    $rs=mysql_query($sql,$conn);
    while($result=mysql_fetch_array($rs))
    {
        $sql2="SELECT * from customer_communication WHERE customer_seq = '".$result["sequence"]."' and datetime > DATE_ADD(DATE(now()), INTERVAL 15 DAY) order by datetime ASC ";
        $rs2=mysql_query($sql2,$conn);
        if(mysql_num_rows($rs2) > 0)
        {
            echo '<tr>
            <td><a href="customer_communication.php?seq='.$result["sequence"].'">'.$result["company"].'</a></td>
            </tr>';
        }
    }
    echo '</table>';

そのため、customer テーブルからすべての行を選択し、customer_communication テーブルから customer_seq = sequence であり、datetime 列から 15 日経過している行を選択します。

customer_communication テーブルに存在しない顧客テーブルのすべての行を表示する方法

たとえば、customer にシーケンス 1 があり、これは customer_communication テーブルの customer_seq 列に存在しないので、これを表示したい

4

3 に答える 3

1

これは、基本的な SQL で実行できます。それをあなたのphpに統合するのはあなたに任せます。

SELECT * FROM Customer c
WHERE NOT EXISTS
    (SELECT * FROM Customer_Communication
    WHERE Customer_seq = c.Customer_Seq);
于 2013-11-13T10:23:31.183 に答える
0

これを試してみませんか?

$sql="SELECT * FROM customer as a, customer_communication as b  WHERE a.company_status = '' AND a.no_communication = '' AND b.customer_seq NOT IN ( SELECT sequence FROM customer ) AND b.datetime > DATE_ADD(DATE(now()), INTERVAL 15 DAY) ORDER BY a.company ASC ";
于 2013-11-13T10:24:17.657 に答える
0

これを行うには複数の方法がありますが、1 つの方法は、サブクエリを使用して customer_communication テーブルから一意の customer_seq 値を取得し、次に、sequence 列にそれらの値を持たない顧客テーブルからすべての行を取得することです。

Select * from customer c
where c.sequence not in 
(select distinct customer_seq from customer_communication)
于 2014-11-03T16:02:17.917 に答える