Foros del Web » Programando para Internet » PHP »

como Consultar una tabla basada en otra?

Estas en el tema de como Consultar una tabla basada en otra? en el foro de PHP en Foros del Web. Buenas... explico mi problema... tengo una base de datos con varias tablas una llamada archivo en donde pongo los datos generales de los registros con ...
  #1 (permalink)  
Antiguo 31/07/2012, 02:04
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Pregunta como Consultar una tabla basada en otra?

Buenas...

explico mi problema...

tengo una base de datos con varias tablas
una llamada archivo en donde pongo los datos generales de los registros
con los campos id_ar, nombre, cum, status, seccion y nivel
y otra llamada adelanto en donde registro sus actividades
con campos id_ade, nombre, cum, feprolob, feprotrop, feproclan

ahora me piden que haga una consulta basada en los miembros activos y que su estatus y cum, de las coincidencias consultar la segunda tabla y contar cuantos miembros tienen feprolob, feprotrop, feproclan

ya tengo hecho la consulta y la seleccion por cum y estatus y los cuente para sacar un porcentaje, ahora mi problema es que no se como hacer que al mismo tiempo lea de la segunda tabla y haga el conteo correspondiente para sacar porcentajes del total de registros que coinciden.

aqui esta la parte del codigo de mi consulta a la tabla

Código PHP:
$bar=preg_replace "/^([a-z]+)G(\d+)([a-z]+)(\d+)$/i"'$2'$buscador);
$bar3 $bar1."G".$grupo;  //$bar1;//.$bar;
$i=0;
$query mysql_query("SELECT * FROM archivo WHERE rug LIKE '$bar3%' ORDER BY nombre, seccion"); //Busca los que coinciden
while($row mysql_fetch_assoc($query)) {
   if (
$row["STATUS"] == "ACTIVO" and $row["seccion"] == "LOBITAS" ) {$cum $row["rug"];
      
$i++;
    echo 
"<br> archivo : ".$row["nombre"]."CUM ".$cum;  //muestra las coincidencias y hasa aqui todo bien

// a partir de aqui marca errores y ya no se como hacer que haga la consulta
$query1 mysql_query("SELECT * FROM adelantos WHERE rug = $cum"); //no funciona
$row mysql_fetch_assoc($query1)
   if (
$row["feprolob"] !== "" ) {
        
$ii++;
        echo 
"<br>adelanto : ".$row["nombre"];

        }
   if (
$row["feprotrop"] !== "" ) {
        
$iii++;
        echo 
"<br>adelanto : ".$row["nombre"];
        }
   if (
$row["feproclan"] !== "" ) {
        
$iiii++;
        echo 
"<br>adelanto : ".$row["nombre"];
        }

       }
   }
$activos $i;
// mas adelante se imprimen los datos en pantalla y todo el resto pero aqui estoy atorado.... 
alquien que me pueda orientar o si hay alguna manera mas facil de hacerlo, por favor si me pueden orientar porque llevo ya varias horas tratando de buscarle y no logro lo que necesito...

de antemano muchas gracias!!

Saludos!!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #2 (permalink)  
Antiguo 31/07/2012, 03:50
Usuario no validado
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 16
Respuesta: como Consultar una tabla basada en otra?

No entiendo al 100% tu problema.

¿Las tablas "archivo" y "adelanto" se relacionan solamente por el campo "cum"?

Te sugiero poner el SQL de ambas tablas e intentar explicar mejor lo que necesitas hacer.

Por si te sirve, te comento que con MySQL es factible crear "tablas virtuales" (por llamarles de alguna forma) dentro de un "select".

Algo parecido a esto:

select a.Id_Item, b.N
from TABLA1 a
inner join ( select x.Id_Item, count(*) as N
from TABLA2 x
group by x.Id_Item
) as b
on b.Id_Item = a.Id_Item;

Aunque dependiendo de datos, relaciones y otras cosas, no es lo mejor que se puede hacer.

Saludos,

PCID.
  #3 (permalink)  
Antiguo 31/07/2012, 09:30
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Exclamación Respuesta: como Consultar una tabla basada en otra?

buenas!!

Gracias por responder...
Si Efectivamente el comun denominador en ambas tablas es nombre y cum por lo que a partir de eso necesito consultar los datos de ambas para hacer un desplegado en pantalla presentando tanto informacion de una como de otra tabla....
mi idea original era hacer las consultas por separado pero me topo con el problema que dependiendo del campo STATUS se presente o no la informacion pero esa solo existe en la primera tabla.
lo simple seria poner el mismo campo pero me piden que no sea asi, que sea por consulta basado en la primera.

ahora de lo que comentas de "tablas virtuales" me gustaria tener mas informacion, si sabes de alguna pagina de donde pueda investigar porque al consultar en google me salen miles de ejemplos para copiar y pegar pero quiero saber como funcionan realmente.

Te agradeceria a ti o a cualquiera que pueda orientarme ya sea con esa opcion o con mi idea original...

de nuevo Gracias por responder....

Saludos!!

disculpa se me pasaba el dato de las SQL aqui esta:
Código PHP:
$query mysql_query("SELECT * FROM archivo WHERE rug LIKE '$bar3%' ORDER BY nombre, seccion"); //asi estaba para consulta individual

$query1 mysql_query("SELECT * FROM adelantos WHERE rug = $cum"); //esta en la consulta a la segunda tabla que no funciona

$query mysql_query("SELECT archivo.*, adelanto.*, archivo.id_archivo as Identificador FROM archivo,adelantos WHERE archivo.rug LIKE '$bar3%' AND adelanto.rug = archivo.rug "); //esto es lo ultimo que intente pero no funciona 
__________________
¡El Respeto al Derecho Ajeno Es la Paz!

Última edición por HalconVigia; 31/07/2012 a las 09:35 Razón: falto informacion

Etiquetas: consultar, mysql, registro, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:12.