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

Consulta 2 tablas

Estas en el tema de Consulta 2 tablas en el foro de Mysql en Foros del Web. Hola buenas tardes amigos. Queria hacerles una consulta sobre como hacer la consulta mysql para que no me repita datos. Les explico como lo tengo: ...
  #1 (permalink)  
Antiguo 10/04/2011, 15:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Consulta 2 tablas

Hola buenas tardes amigos.

Queria hacerles una consulta sobre como hacer la consulta mysql para que no me repita datos.

Les explico como lo tengo:

Tengo 2 tablas en una BBDD y queria hacer una consulta por NOMBRE y en estas dos tablas almaceno informes de reparacion. Entonces si hay dos informes de una misma persona se me repite.

El problema que tengo es que en las dos tablas queiro buscar por nombre, por nif, por telefono y cuando ago la consulta se me repiten.

Esta consulta que les pongo a continuacon el problema que me da es que no me repite registros pero si el mismo nombre no lo tengo en las dos tablas no me lo muestra.

Cita:
select distinct * from st_taller inner join st_externo on st_taller.nombre=st_externo.nombre where st_taller.nombre like '%torres%' or st_externo.nombre like '%torres%' group by st_taller.nombre, st_externo.nombre
Me gustaria que me pusiera un ejemplo.

Gracias.

Última edición por djkire; 11/04/2011 a las 01:21
  #2 (permalink)  
Antiguo 11/04/2011, 02:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta 2 tablas

inner join solo mostrara los registro comunes a las dos tablas
left join mostrara todos registros de la tabla de la izquierda y los asociados de la de la derecha
rigth join lo contrario a la anterior

Si nos cuentas que guardas en cada tabla igual te podremos aconsejar mejor...

Suponiendo que en una tabla tengas los trabajos realizados en el Taller y en la otra los realizados Fuera del Taller luego seria mejor un UNION ALL que un join....
Código MySQL:
Ver original
  1. Select distinct SbcUnion.nombre from
  2. (Select ta.nombre from
  3. from st_taller as ta
  4. Select ex.nombre from
  5. from st_externo as ex) as SbcUnion

Recuerda que DISTICNT valora todos los campos, es decir si usas * listarà TODOS los registros que tengan alguna diferencia en cualquiera de sus campos... no solo del nombre.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 11/04/2011, 03:15
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Consulta 2 tablas

Y despues el tema de los like como los haria porque me da un error el la columna st.nombre porque dice que no existe.

Gracias.
  #4 (permalink)  
Antiguo 11/04/2011, 05:08
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, 5 meses
Puntos: 2658
Respuesta: Consulta 2 tablas

Cita:
me da un error el la columna st.nombre porque dice que no existe.
Entonces pon el nombre del campo que corresponde a TU tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 12/04/2011, 01:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta 2 tablas

O si el nombre del campo es nombre usa el alias de la subconsulta. En mi ejemplo SbcUnion.

where SbcUnion.nombre like '%torres%'
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #6 (permalink)  
Antiguo 14/04/2011, 17:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Consulta 2 tablas

Muchas gracias me a sido de gran ayuda!!

Etiquetas: 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 00:31.