Mysql查询正在生成重复数据

时间:2014-09-23 13:49:16

标签: php mysql sql

我有一个数据库设置,其中一个表包含客户,第二个包含调用。当客户呼入时,会记录并将其作为文本文件保存到呼叫数据库中,其中包含日期时间和呼入的客户ID。

客户ID是一个外键,它链接到呼叫表中的ID,一个客户可以有多个呼叫。

我使用以下内容从数据库中获取数据

        $result = mysql_query(" SELECT * FROM customer LEFT JOIN calllog ON calllog.customID = customer.ID INNER JOIN address ON customer.ID = address.customer_ID   WHERE CallStatus= 'Open' ")or die(mysql_error()); 

for循环然后回显所有结果:

 for ($i = $start; $i < $end; $i++)
    {

            if ($i == $total_results) { break; }

            echo "<tr class='main'>";
            echo '<td>' . mysql_result($result, $i, 'First_Name') . '</td>';
            echo '<td>' . mysql_result($result, $i, 'Surname') . '</td>';
            echo '<td>' . mysql_result($result, $i, 'Company_Name') . '</td>';
            echo '<td> <div style="width: 200px">' .  nl2br(mysql_result($result, $i,'line_1')) . '</div></td>';
            echo '<td>' . mysql_result($result, $i, 'town') . '</td>';
            echo '<td>' . mysql_result($result, $i, 'customer.ID') . '</td>';

            echo '<td>' . mysql_result($result, $i, 'Telephone') . '</td>';

            echo '<td><a href="callJob.php?id=' . mysql_result($result, $i, 'id') . '"><img src="img\job.jpg" title="New Job"/></a></td>';
    echo '<td><button class= "Call" id="Calllog' . mysql_result($result, $i, 'id') . '"></></ /></a></td>';

            echo "</tr>"; 


            echo "<tr>";
             echo '<td colspan="13"><div ">' .  nl2br(mysql_result($result, $i, 'CallNotes')) . '</div></td>'; //Display notes
            echo '<td>' . mysql_result($result, $i, 'CallTime') . '</td>';
            echo "</tr>"; 

    }
    echo "</table>"; 

多个通话备注附加到单个客户,但是当他们有多个通话时我会收到重复的客户。它会回应:

Tom
Call log1

Jim
Call log1

Tom 
call log 2

我期待它去

Tom
Call Log1
Call log2

Jim 
Call log 1.

2 个答案:

答案 0 :(得分:0)

将group by子句添加到SQL语句

SELECT * 
FROM customer 
LEFT JOIN calllog ON calllog.customID = customer.ID 
INNER JOIN address ON customer.ID = address.customer_ID
WHERE CallStatus= 'Open' 
GROUP BY customer.ID

答案 1 :(得分:0)

我认为你的INNER JOIN是LEFT JOIN的罪魁祸首。