tal vez si intentas hacer dos consultas, una para recuperar las horas y ocurrencias iguales de un dia determinado y con eso por cada uno consultas y recuperas todas las ciudades para una hora y ocurrencia determinada, aqui te dejo una ideaa como seria:
Código PHP:
<?
$consulta1 = "SELECT a.hora, DescOcurrencia FROM
TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d)
ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta)
WHERE TIME(DATE_SUB(NOW(), INTERVAL 6 HOUR)) <= a.Hora
GROUP BY a.hora, DescOcurrencia ";
$resaviso = mysql_query($consulta1,$conex);
while ($fila = mysql_fetch_array($resaviso))
{
$consulta2 = "SELECT NomCiudad FROM
TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d)
ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta)
WHERE TIME(DATE_SUB(NOW(), INTERVAL 6 HOUR)) <= a.Hora AND a.hora='$fila[0]' AND DescOcurrencia='$fila[1]' ";
$resaviso2 = mysql_query($consulta2,$conex);
$Num_filas2 = mysql_num_rows($resaviso2);
<tr>
<td><div align='left'><b>AFECTANDO EL AREA DELIMITADA POR LAS SIGUIENTES LOCALIDADES :</b>
<?
while ($fila2 = mysql_fetch_row($resaviso2))
echo $fila2[0]", ";
?>
</div></td><td> </td>
</tr>
cya