我有一个数据库设置,其中一个表包含客户,第二个包含调用。当客户呼入时,会记录并将其作为文本文件保存到呼叫数据库中,其中包含日期时间和呼入的客户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.
答案 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的罪魁祸首。