Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2009, 10:11
abigor66
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 16 años
Puntos: 8
Pregunta Como resalizar esta subconsulta (Solucionado)

Muy buenos días Foreros, felices fiestas!!

espero me puedan ayudar con lo siguiente:
necesito realizar una doble consulta a una misma tabla, he escrito el siguiente código que funciona muy bien:

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT DATE_FORMAT(fecha, '%Y-%m-%d') as day_unique FROM tabla GROUP BY day_unique");
  2.  while ($row = mysql_fetch_array($sql)) {
  3.      $sql_1 = mysql_query("SELECT COUNT(fecha) as total FROM tabla WHERE DATE_FORMAT(fecha, '%Y-%m-%d')='".$row['day_unique']."'");
  4.         if ($row_1 = mysql_fetch_array($sql_1)) {
  5.          echo $row['day_unique']." = ".$row_1['total']."<br />\n";
  6.         }
  7.      mysql_free_result($sql_1);
  8.  }

lo que hace es agrupar los registros por días y mostrar cuantos registros entraron ese día en particular.

pero tengo la siguiente duda: ¿esta es la mejor forma de hacer este tipo de consultas? o es preferible manejarla con UNION o JOIN

es decir, algo así:

Código PHP:
Ver original
  1. $sql = mysql_query("(SELECT DATE_FORMAT(fecha, '%Y-%m-%d') as day_unique FROM tabla GROUP BY day_unique) UNION (SELECT COUNT(fecha) as total FROM tabla WHERE DATE_FORMAT(fecha, '%Y-%m-%d')='day_unique')");
  2.  while ($row = mysql_fetch_array($sql)) {
  3.      echo $row['day_unique']." = ".$row['total']."<br />\n";
  4.  }

Obviamente esté código no funciona (Aunque se agradecen aportes para que funcione) pero es un ejemplo de como sería.

Muchas Gracias por su atención.
__________________
AppLab - Laboratorio de Ideas

Última edición por abigor66; 30/12/2009 a las 10:23