我有很多表INNER JOIN(ing)继续这个,我有那个部分想通了。基本上,我正在显示某些信息有限的紧急呼叫,以便公众可以看到他们所在地区的情况。我最近决定INNER JOIN单位与票证表,以便人们可以看到分配给某些电话的单位以及他们的电话状态。
我在桌子上接听电话。每一行都是不同的电话。我添加单位时遇到的问题是,如果一个呼叫有多个单元,即使两个行中的两个单元被分配给同一个呼叫,它也会为每个单元显示不同的行。例如:
救护车1 - 呼吸困难 - 致电#1013 引擎1 - 呼吸困难 - 致电#1013 救护车2 - 升降机辅助 - 呼叫#1012 发动机2 - 提升辅助 - 呼叫#1012
我想列出一行中涉及的所有单位,因此呼叫信息仅显示一次。例如:
救护车1,发动机1 - 呼吸困难 - 致电#1013 救护车2,发动机2 - 升降辅助 - 呼叫#1012
我尝试过使用某些教程中的GROUP_CONCAT和GROUP BY方法。这只能显示每个呼叫一次,但它也只为每个呼叫显示一个单位,无论是否为该呼叫分配了多个。
我认为这里的一个大问题在于,我在INNER JOIN(ing)多个表之间的代码中有很多信息,但是为了显示单位名称(救护车1)而不仅仅是代表该单位的身份证号码(41)。
我正在使用的基本表编码如下,而不使用GROUP_CONCAT或任何GROUP方法。 非常感谢任何能够提供任何建议的人,因为这真的让我迷失了!
<table cellspacing=10>
<tr>
<th align="left">
<u>Assigned Units-Status</u>
</th>
<th align="left">
<u>City/Area</u>
</th>
<th align="left">
<u>Call Date/Time</u>
</th>
<th align="left">
<u>Call Description</u>
</th>
</tr>
<?php
// Connect to database server
mysql_connect("host", "db", "pass") or die (mysql_error ());
// Select database
mysql_select_db("dbname") or die(mysql_error());
// SQL query
$query="SELECT 911dbticket.id, 911dbticket.city, 911dbticket.problemstart, 911dbticket.description, 911dbassigns.ticket_id, 911dbassigns.responder_id, 911dbassigns.status_id, 911dbassigns.dispatched, 911dbassigns.responding, 911dbassigns.on_scene, 911dbassigns.clear, 911dbresponder.name
FROM 911dbticket
INNER JOIN 911dbassigns ON 911dbticket.id=911dbassigns.ticket_id
INNER JOIN 911dbresponder ON 911dbassigns.responder_id=911dbresponder.id
INNER JOIN 911dbun_status ON 911dbassigns.status_id=911dbun_status.id
WHERE `status` !='1' AND `in_types_id` NOT IN ('3', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14')
ORDER BY problemstart DESC";
// Execute the query (the recordset $rs contains the result)
$rs = mysql_query($query);
// Loop the recordset $rs
// Each row will be made into an array ($row) using mysql_fetch_array
while($row = mysql_fetch_array($rs)) {
echo "<tr><td><font color=orange>".$row['name']."</font></td><td><font color=green>".$row['city']." </font></td><td><font color=green> ".$row['problemstart']."</font></td><td width=500><font color=green><i>".$row['description']."</i></font></td></tr>";
}
// Close the database connection
mysql_close();
?>
答案 0 :(得分:0)
知道了。我不知道“GROUP_CONCAT”必须像这样包含在行结果中:
$row['GROUP_CONCAT(name)']
而不仅仅是:
$row['name']
我正在做更多的研究,并查看更多的示例和教程,我在回声中看到了这一点并尝试了它。我惊喜地看到同一个电话旁边的“救护车1,引擎1”!哈哈
非常感谢你花时间看看这个并帮助我!对此,我真的非常感激!希望这篇文章能够帮助那些可能遇到这个问题的人。