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

[SOLUCIONADO] Consulta en 3 tablas de mysql

Estas en el tema de Consulta en 3 tablas de mysql en el foro de Mysql en Foros del Web. Hola amigos, que sentencia sql puedo utilizar para generar una busqueda en 3 tablas. Tengo una base de datos de 3 tablas donde se guardan ...
  #1 (permalink)  
Antiguo 28/05/2014, 12:47
 
Fecha de Ingreso: mayo-2014
Mensajes: 35
Antigüedad: 9 años, 10 meses
Puntos: 0
Consulta en 3 tablas de mysql

Hola amigos, que sentencia sql puedo utilizar para generar una busqueda en 3 tablas.

Tengo una base de datos de 3 tablas donde se guardan datos de clientes, otra para guardar notas de ese cliente, y la otra para guardar notas de llamadas del mismo cliente.

esta es la estructura basica de las tablas

table 'clientes'
id_cliente
nombre

table 'notas'
id_nota
nota
id_cliente

table 'llamadas'
id_llamada
nota_llamada
id_cliente

Pero no eh podido realizar un consulta de esas 3 tablas. Eh mirado codigos que suben a la Web, pero al incorporarlo dentro del programa no me han funcionado correctamente.
Lo que necesito es un código que me haga consultas de esas tres tablas donde solo realice las busquedas en estas columnas (nombre, nota y nota_llamada)

Agradezco en lo que me puedan ayudar.
  #2 (permalink)  
Antiguo 28/05/2014, 13:28
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Consulta en 3 tablas de mysql

que criterios manejas para ralizar tu consulta? tienes algun formulario o codigo donde pueda ver tu consulta?? y un ejemplo de como quieres que se muestren tus datos
saludos...
  #3 (permalink)  
Antiguo 28/05/2014, 20:17
 
Fecha de Ingreso: mayo-2014
Mensajes: 35
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Consulta en 3 tablas de mysql

Ilidam, Estoy realizando un proyecto en php, en el cual tengo que hacer un buscador con una sola caja de texto que me haga consultas a las tres tablas que mencione enteriormente.

El codigo php que estoy utilizando es select * from clientes where nombre LIKE '".$q."%'
donde solo hago la consulta a una sola tabla. Pero no he logrado encontrar la sentencia correcta para este buscador.

Lo que se debe mostrar en la pantalla son los nombres y apellidos de los clientes que estan relacionados con lo que se esta buscando.

ejemplo: si en la caja de texto se escribe 'nota 01' en la pantalla deben aparecer los nombres y apellidos de los clientes que estén relacionados con 'nota 01'

Saludos.
  #4 (permalink)  
Antiguo 29/05/2014, 09:01
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Consulta en 3 tablas de mysql

Saludos amigo.

Creo que no puedes hacer una consultas de las 3 tablas, porque la relacion no es de varios a varios, por ejemplo si el cliente tiene su ID 2 veces en nota, te traera esos 2 datos, pero si el cliente tambien tiene su ID 2 veces en llamadas, tambien te traera esos 2 datos, que en total vendrian a ser 4.

Creo que podrias hacerlo por consultas separadas:

La consulta para notas:

Código MySQL:
Ver original
  1. SELECT * FROM clientes c, notas n WHERE c.idcliente = n.idcliente AND n.nota LIKE '%$parametro%' OR c.idcliente LIKE '%$parametro%'

Y la segunda consulta es igual:

Código MySQL:
Ver original
  1. SELECT * FROM clientes c, llamadas l WHERE c.idcliente = l.idcliente AND l.notallamada LIKE '%$parametro%' or c.idcliente LIKE '%$parametro%'

Recuerda que podria haber un cliente que tenga su ID en nota, pero no en llamada, por eso veo necesario lo de una consulta separada.

Me avisas como te fue. Un saludo.
  #5 (permalink)  
Antiguo 02/06/2014, 09:19
 
Fecha de Ingreso: mayo-2014
Mensajes: 35
Antigüedad: 9 años, 10 meses
Puntos: 0
De acuerdo Respuesta: Consulta en 3 tablas de mysql

Cristian23CL4PTP gracias amigo, el código me esta funcionando correctamente
  #6 (permalink)  
Antiguo 03/06/2014, 15:49
 
Fecha de Ingreso: diciembre-2012
Mensajes: 53
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Consulta en 3 tablas de mysql

Lo que puedes hacer tambien es utilizar un INNER JOIN

para las notas podes usar:
Código MySQL:
Ver original
  1. SELECT * FROM clientes cli INNER JOIN  notas nt ON( cli.id_cliente = nt.id_cliente AND nt.nota LIKE '%$algun_parametro %' OR cli.id_cliente LIKE '%$algun_parametro%' );

y con la otra, es casi igual pero cambiando los nombres de los campos y tablas
es otra forma

Saludos.-

Etiquetas: sql, tabla, tablas
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 23:42.