Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consulta en bases de datos varias tablas php y mysql

Estas en el tema de consulta en bases de datos varias tablas php y mysql en el foro de Mysql en Foros del Web. Buen dia, bueno me he matado la cabeza y aun no he podido sacar una consulta que me realice busqueda en varias tablas de mi ...
  #1 (permalink)  
Antiguo 28/12/2012, 16:41
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información consulta en bases de datos varias tablas php y mysql

Buen dia, bueno me he matado la cabeza y aun no he podido sacar una consulta que me realice busqueda en varias tablas de mi base de datos, en total son 12 tablas, la idea es buscar por medio de un form donde se captura el dato en mi caso el numero de cedula o por el nombre y me consulte en todas las tablas por este numero, pero nada se me cuelga y se me bloquea la pc cuando mando la consulta.

form de captura de datos

Cita:
Editado: No se permite código de programación en los foros de bases de datos.
y este es el de mi consulta que enreallidad no se como que todo esta mal

Código MySQL:
Ver original
  1. SELECT ducto.nombre, nalco.nombre, directorisan.nombre, telbca.nom, ludtotal.cotizantenombre;
  2.  
  3. SELECT FROM bucara;

bueno espero poder solucionar esto llevo dias y nada ya me hice bolas con estos jajajaja pero bueno se que hay una manera que quede bien y no se cuelge tambien la base de datos y se tarde en consultar.
agradezco de antemano cualquier aporte.
__________________
edwinarley

Última edición por gnzsoloyo; 28/12/2012 a las 18:46 Razón: No se permite código de programación en los foros de bases de datos.
  #2 (permalink)  
Antiguo 28/12/2012, 18:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta en bases de datos varias tablas php y mysql

La consulta
Código MySQL:
Ver original
  1. SELECT FROM bucara;
está incompleta.

Vuelve a revisar tu código SQL y postea aquí solamente lo que tenga que ver con eso.
PHP o HTML no son tema de este foro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/01/2013, 15:39
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: consulta en bases de datos varias tablas php y mysql

bueno que pena no sabia que no se podia poner codigo
pero en realidad no he podido darle solucion a lo mio aqui dejo la sentencia SQl que nada que me sale y son 12 tablas que tengo que realizar la busqueda.

Código MySQL:
Ver original
  1. SELECT acue, comfe, coome;
Código MySQL:
Ver original
  1. SELECT acue
  2.  INNER LEFT JOIN comfe
  3.  ON acue.cedula=coome.ide_afili
  4.  INNER LEFT JOIN coome
  5.  ON comfe.cedula=coome.ide_afili WHERE cedula=%'buscar%'
;

que es lo que busco con esto poder buscar en todas las 12 tablas si existe el numero de cedula y que me lo traiga para poder imprimir los datos o resultados de la consulta
__________________
edwinarley

Última edición por gnzsoloyo; 18/01/2013 a las 17:37 Razón: Codigo PHP no corresponde
  #4 (permalink)  
Antiguo 18/01/2013, 16:23
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: consulta en varias tablas mysql y php

Hola edwinarley:

En primer lugar, no confundas temas de programación con temas de base de datos... son dos cosas muy distintas. Supongo que estás trabajando con PHP, por lo que te recuerdo que existe un foro específico para este tema... puedes publicar ahí las dudas o preguntas que tengas al respecto:

http://www.forosdelweb.com/f18/

Ahora bien, pasando a tu problema... en realidad tienes dos consultas, en dos variable distintas, pero ninguna de las dos está completa...

En la variable $sql tienes
Código MySQL:
Ver original
  1. SELECT acue, comfe, coome
Aquí sólo haces una selección de campos, pero no especificas de qué tablas extrás la información

en la variable $consulta
Código MySQL:
Ver original
  1. SELECT acue
  2. ON acue.cedula=coome.ide_afili
  3. ON comfe.cedula=coome.ide_afili WHERE cedula=%'buscar%'
Aquí falta la cláusula FROM, además, no sé por qué estás poniendo los signos de %... si es para buscar patrones, estos tienen que usarse con el operador LIKE, no con el operador =

Código MySQL:
Ver original
  1. SELECT T1.campo1, T2.campo2, T3.campo3
  2. ...
  3. [COLOR=Red]FROM[/COLOR] tabla1 T1
  4. INNER JOIN tabla2 T2 ON T1.id = T2.id
  5. INNER JOIN tabla3 T3 ON T1.id = T3.id
  6. ...
  7. T1.campo1 [COLOR=red]LIKE [/COLOR]'%cadena%';
Te recomiendo que ejecutes directamente la consulta en una consola de MySQL para asegurarte que efectivamente es correcta, antes de intentar ejecutarla desde PHP o desde cualquier otra página de programación

Saludos
Leo.

Última edición por gnzsoloyo; 18/01/2013 a las 17:38
  #5 (permalink)  
Antiguo 18/01/2013, 16:36
 
Fecha de Ingreso: marzo-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: consulta en varias tablas mysql y php

hola se podria solucionar asi tu problema
Código MySQL:
Ver original
  1. SELECT acue, comfe, coome
Código MySQL:
Ver original
  1. SELECT acue
  2. INNER  JOIN comfe
  3. ON acue.cedula=coome.ide_afili
  4. INNER JOIN coome
  5. ON comfe.cedula=coome.ide_afili WHERE cedula=%'buscar%'
o
Código MySQL:
Ver original
  1. SELECT acue, comfe, coome;
  2. SELECT acue
  3. LEFT JOIN comfe
  4. ON acue.cedula=coome.ide_afili
  5. LEFT JOIN coome
  6. ON comfe.cedula=coome.ide_afili WHERE cedula=%'buscar%';
cual quera de los dos te sirve lo unico que difiere es el tiempo de consulta exitos

Última edición por gnzsoloyo; 18/01/2013 a las 17:40 Razón: Codigo PHP no corresponde
  #6 (permalink)  
Antiguo 18/01/2013, 18:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta en bases de datos varias tablas php y mysql

Sigo sin entender por qué pones una consulta sin tabla:
Código MySQL:
Ver original
  1. SELECT acue, comfe, coome
que en realidad no hace absolutamente nada, junto con otra que sí consulta tablas:
Código MySQL:
Ver original
  1. SELECT acue
  2.     LEFT JOIN comfe ON acue.cedula=coome.ide_afili
  3.     LEFT JOIN coome ON comfe.cedula=coome.ide_afili
  4. WHERE cedula='%buscar%';
AL margen de eso, los "%" sólo se usan si pones una cláusula LIKE, cosa que no estás haciendo, y no tiene sentido usar si "cedula" fuese una cadena de texto, y no un entero como sugiere su nombre.

¿Podrías aclararme esas cosas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 19/01/2013, 11:33
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: consulta en bases de datos varias tablas php y mysql

Para consultar de tablas hace falta usar SELECT .. FROM salvo que vayas a usar alguna función análoga, por ejemplo, para lo siguiente no hace falta FROM

Código MySQL:
Ver original 

Técnicamente sigue satisfaciendo la norma SELECT [ALL | DISTINCT | DISTINCTROW ] ... select_expr siendo la expresión del SELECT, la diferencia es que para ello no hace falta determinar ninguna tabla.

La cuestión base es que la estructura es

SELECT expresion [FROM [WHERE [GROUP BY [ WHERE.... ] ] ] ]

y si la expresión es una columna has de indicar obligatoriamente FROM.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #8 (permalink)  
Antiguo 21/01/2013, 16:11
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: consulta en bases de datos varias tablas php y mysql

hola buen dia bueno al subir la sentencia en sql aqui al foro no coloco el select from no se el porque, igual ya lo realice pero al realizar la prueba se cuelga y se queda en la busqueda, luego sale un aviso de que se expiro el tiempo de busqueda en PHP, aun no entiendo el porque?? seguire realizando pruebas y mirando cual es el problema con el codigo por que en realidad no entiendo si la sentencia en sql con los aportes que me han dado debe funcionar....igual sigo esperando los aportes con este tema.
__________________
edwinarley
  #9 (permalink)  
Antiguo 21/01/2013, 16:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta en bases de datos varias tablas php y mysql

Cita:
al subir la sentencia en sql aqui al foro no coloco el select from no se el porque, igual ya lo realice pero al realizar la prueba se cuelga y se queda en la busqueda, luego sale un aviso de que se expiro el tiempo de busqueda en PHP, aun no entiendo el porque??
Probablemente haya algún problema de optimización en esa consulta, sea porque devuelve demasiados registros, porque genera productos cartesianos, porque las tablas tienen demasiados registros (alguna de ellas o todas), porque les faltan índices, podría ser también que el WHERE contenga LIKEs ineficientes, en fin...
Francamente, sin ver la sentencia que terminaste usando, y probablemente la estructura de las tablas, sólo estaremos adivinando. Las posibilidades son muchas.
¿Podrías postear eso?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 21/01/2013, 16:46
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Respuesta: consulta en bases de datos varias tablas php y mysql

bueno ya no se queda colgada la busqueda pero igual no me arroja resultado alguno y al realizar busqueda indidual en la tabla coome si me encuentra un dato, pero al realiazar toda la consulta nada, aqui dejo el codigo

Código MySQL:
Ver original
  1. SELECT acue.cedula, comfe.cedula, coome.ide_afili
  2.                FROM  acueducto
  3.                INNER LEFT JOIN comfe
  4.                ON acue.cedula=coome.ide_afili
  5.                INNER LEFT JOIN coome
  6.                ON comfe.cedula=coome.ide_afili WHERE cedula LIKE %'buscar%'
__________________
edwinarley

Última edición por gnzsoloyo; 21/01/2013 a las 17:58 Razón: SQL sin etiqeutar.
  #11 (permalink)  
Antiguo 21/01/2013, 18:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta en bases de datos varias tablas php y mysql

Bueno, por empezar, tienes un error sintáctico: O es INNER JOIN o es LEFT JOIN, pero no ambos a la vez.
Con INNER JOIN sería:
Código MySQL:
Ver original
  1. SELECT acue.cedula, comfe.cedula, coome.ide_afili
  2.     acueducto
  3.     INNER JOIN comfe ON acue.cedula=coome.ide_afili
  4.     INNER JOIN coome ON comfe.cedula=coome.ide_afili
  5. WHERE cedula LIKE %'buscar%'
El LEFT JOIN se usa en aquellos casos donde se desea que devuelva todo lo de la tabla a la izquierda tenga o no relación con la tabla a la derecha de cada JOIN. En tu caso, devovlería todo los registros de "acueducto", con NULL en las otras tablas donde no hubiese relaciones.
El problema de LEFT JOIN sobre multiples tablas es que puede generar productos catesianos, dando como resultado mucha información incorrecta.
Exactamente... ¿qué datos buscas obtener?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 22/01/2013, 07:48
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Respuesta: consulta en bases de datos varias tablas php y mysql

hola buen dia gnzsoloyo bueno en realidad lo que necesito obtener es que me haga la busqueda en todas las tablas por el numero de cedula, previamente ya introducido en un form y un campo para que me lo traiga y busque.
despues de que me encuentre datos sobre el numero de la cedula me los muestre organizados. ejemplo:
tengo las tablas coome, acue, comfe y en coome y comfe existe la cedula12345 pero en auce no entonces si encontro en coome y comfe muestro los resultados que necesito de ese numero de cedula, ahora aqui solo pongo 3 tablas pero en total mi consulta son 12 tablas que necesito en la sentencia todas que me busque por la cedula, ahora el campo cedula en la mayoria de las tablas se lllama cedula pero en otras no, pero creo que ha ello no hay problema en fin una sentencia no me habia sacado tantas canas, cualquier aporte gracias.
__________________
edwinarley

Etiquetas: bases, join, php, registros, resultados, select, sql, tabla, tablas, campos
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 09:16.