Foros del Web » Programando para Internet » PHP »

consultas

Estas en el tema de consultas en el foro de PHP en Foros del Web. hola amigos la presente es para pedirles asesoria en relacion a lo siguiente: tengo tres bd, la primera tiene una tabla con todas las marcas ...
  #1 (permalink)  
Antiguo 28/04/2010, 06:57
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo consultas

hola amigos la presente es para pedirles asesoria en relacion a lo siguiente:

tengo tres bd,
la primera tiene una tabla con todas las marcas de vehiculo
la segunda tiene las 313 tablas que representan las distintas marcas de vehiculo y dentro de ellas toda las especificaciones de cada vehiculo segun su tabla o marca.

por ejemplo imaginemos lo siguente.

en la primera bd tengo el listado de las marcas as:

chevrolet
ford
ferrari
ect.

en la segunda tengo lo siguiente:

tabla:

1) chevrolet
y dentro de ellas sus especificaciones

2) ford
y sus especificaciones.


Cual es mi duda??

mi duda es la siguiente: como logro saber la marca y version de un vehiculo, mi idea principal fue crearme una vista de marcas y una vista de personas, la cual mediante una consulta podia hacer otra vista y saber que marca corresponde a que persona, el problema que presento es que tengo que hacer una consulta sobre una vista de otra vista para obtener tan solo la marca y aun no se la version.
el problema es que como estoy consultando una vista de otra vista mi consulta tarda muchisimo y tan solo estoy probando con 5 registros

espero me puedan ayudar a darm una idea

gracias
  #2 (permalink)  
Antiguo 28/04/2010, 07:32
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: consultas

No se te entiende. Y la segunda, tienes 3 bases de datos, una con 1 tabla y otra con 313(la otra no dijiste nada) o tienes realmente 1 base de datos con 3 tablas, una con 7 datos y otra con 313 registros? :S
  #3 (permalink)  
Antiguo 28/04/2010, 07:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: consultas

Tienes que aprender a manejarte con los JOIN.
Código MySQL:
Ver original
  1. SELECT * FROM tabla t1 INNER JOIN tabla2 t2 ON t1.marca = t2.marca
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 28/04/2010, 07:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Respuesta: consultas

Hola disculpa la tercera bd estan todos los cliente y sus registros, es por ello que tengo que enlazar las tres bd, ya que en una tengo los resgistros de los cliente, en la segunda una lista de las marcas y la tercera bd las tablas de cada una de las marcas con su detalle respectivo.

Yo use inner join para hacer las vista que les comente, el problema es que tengo una vista que me muestra las marcas, tengo otra vista donde tengo los clientes con el codigo del producto (que es el codigo q me permite saber la marca del vehiculo), y tengo una tercera vista que es una consulta de las dos primeras vistas, y esta es la que me indica el vehiculo que tiene tal persona.

Ya que me apoyo de la informacion que me muestra las dos primeras vista que cree, el detalle es que en la practica logro a traves de este grupo de vistas, mostrar la marca del vehiculo para tal persona, la cosa esta que para mostrar los registros la consulta se tarda tanto q no me es funsional este proceso.

Es por ello que estoy a qui pidiendoles consejo de como debo mejorar o optimisar, esta consulta, que basicamente me tiene que mostrar la data que hay en dos bd distintas a partir de una BD que es la pricipal que es donde tengo alojados los registros de todos los cliente.

Espero me alla explicado mejor.

Mil gracias y estare atento a sus oportunos comentarios.
  #5 (permalink)  
Antiguo 28/04/2010, 08:32
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: consultas

Sin ver lo que hayas hecho no te podemos ayudar.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 28/04/2010, 12:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Respuesta: consultas

ok coloco el codigo de la mega consulta que hice para solo mostrar la marca del vehiculo del cliente xxx:

<?
include("conexion.php");
$sql1=mysql_query("SELECT distinct (maestra_marcas.id_cliente),maestra_marcas.product o,maestra_marcas.marcas
FROM maestra_marcas,vista_maestra,reg_asig_agentes
WHERE maestra_marcas.id_cliente=vista_maestra.id_cliente
AND vista_maestra.referido!='REFERIDO'
AND vista_maestra.id_cliente NOT IN (
SELECT reg_asig_agentes.id_cliente
FROM reg_asig_agentes)",$conexion);
if($mark = mysql_fetch_array($sql1)){
do{
include("conexion_especificaciones.php");
$busca1=mysql_query("SELECT ".$mark["marca"].".version,".$mark["marca"].".marca,maestra_copi.nombre,maestra_copi.nombre,m aestra_copi.apellido,maestra_copi.cedula,maestra_c opi.id_cliente,maestra_copi.referido,date_format(m aestra_copi.fecha_cotizacion,'%d-%m-%Y') as fecha_cotizacion,maestra_copi.anio_vehiculo,date_f ormat(maestra_copi.vigencia_fin,'%d-%m-%Y') as vigencia_fin
FROM ".$mark["marca"].",maestra_copi
WHERE ".$mark["marca"].".civi='".$mark["producto"]."'
AND maestra_copi.producto='".$mark["producto"]."'",$conexion3);
if($row1 = mysql_fetch_array($busca1)){
echo "<tr>";
echo "<td class=EstiloTexto align=\"center\">".$row1['id_cliente']."</td>";
echo "<td class=EstiloTexto align=\"center\">".$row1['nombre']."</td>";
echo "<td class=EstiloTexto align=\"center\">".$row1['apellido']."</td>";
echo "<td class=EstiloTexto align=\"center\">".$row1['cedula']."</td>";
echo "<td class=EstiloTexto align=\"center\">".$row1['marca']."</td>";
echo "<td class=EstiloTexto align=\"center\">".$row1['version']."</td>";
echo "</tr>";
}
while($row1 = mysql_fetch_array($busca1));
}
}
while($mark= mysql_fetch_array($sql1));
}
mysql_close($conexion3);
?>

explicacion:
estas son las vista en que me apoyo
1) maestra_marcas--->esta vista la hice en mi bd principal llamemosla bd#1,donde esta la tabla cliente, pero es una vista de la tabla ubicada en la bd #2, esta tabla me muestra todas las marcas existen de vehiculo
2) vista_maestra-----> esta vista la hice en la bd #1, donde esta la tabla cliente tambien y me agrupa los clientes por una condicion, es REFERIDO o NO REFERIDO.
3)maestra_copi--->esta es la misma vista_maestra pero creada en la bd#3.

porque lo hice asi porque la idea es la siguiente:

buscame en vista_maestra los clientes, con el codigo del vehiculo tal, si ya tengo el codigo del vehiculo, busco en la vista_marcas que marca corresponde a ese producto, sabiendo la marca me dirijo a la bd#3 con conexion3.php y buscame las tablas que corresponde con ese nombre de marca y muestrame la version de esos vehicolos con esas marcas.

esta es la forma en que lo ide yo, mas no me es funsional porque la consulta se tarda muchisimo y con 5 registros nada mas, entonces quiero saber si puedo mejorar o de que forma puedo mejorar estas consulta a multi bd.

mil gracias mucho espero que me puedan hechar una mano con esto o que por lo menos de guien como puedo mejorarlo al 100%.

Etiquetas: Ninguno
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 12:02.