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

[SOLUCIONADO] Mysql mostrar campos de dos tablas

Estas en el tema de Mysql mostrar campos de dos tablas en el foro de Mysql en Foros del Web. Hola, necesito realizar un select de dos tablas. En una tabla hay los campos TABLA1 id razonsocial En la otra TABLA2 idtabla1 nombre apellido apellido2 ...
  #1 (permalink)  
Antiguo 11/01/2018, 07:10
 
Fecha de Ingreso: febrero-2008
Mensajes: 112
Antigüedad: 11 años, 8 meses
Puntos: 4
Mysql mostrar campos de dos tablas

Hola, necesito realizar un select de dos tablas.

En una tabla hay los campos

TABLA1
id
razonsocial

En la otra
TABLA2
idtabla1
nombre
apellido
apellido2

y necesito que el resultado sea

id, razonsocial, nombre, apellido y apellido2

Y muestre todos los registros de tabla1 y que si no existe registro relacionado en la tabla2 que simplemente muestre un NULL

por ejemplo

id, razonsocial, nombre, apellido1, apellido2
1, pepito sl, pepito, grillo, delmonte
2, Percebes SA, NULL, NULL, NULL
3, Webmasters SL, Antonio, Garcia, Montepinar

He probado con esto
Código:
SELECT TABLA1.razonsocial, TABLA2.nombre, TABLA2.apellido1, TABLA2.apellido2
  FROM TABLA1 INNER JOIN TABLA2 ON TABLA1.id = TABLA2.idtabla1;
y solo me muestra los registros de TABLA1 que tienen algún registro en la TABLA2. Y lo que necesito es que muestre todos los registros de tabla1 y los campos de tabla2. Solo en caso que en tabla 2 no exista registro, supongo que aparecerá NULL

Mil Gracias
  #2 (permalink)  
Antiguo 11/01/2018, 08:40
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 12 años, 10 meses
Puntos: 447
Respuesta: Mysql mostrar campos de dos tablas

Hola estrella_de_Galicia:

Tu problema se resume en que el INNER JOIN es mandativo para ambas tablas, esto quiere decir, que el registro debe existir en ambas para mostrarse. Cambialo por un LEFT o un RIGTH JOIN. Si no sabes cómo funcionan estos, pregúntale a SANTA WIKIPERIA:

https://es.wikipedia.org/wiki/Join

Saludos
Leo.
  #3 (permalink)  
Antiguo 11/01/2018, 08:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 112
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Mysql mostrar campos de dos tablas

sOLUCIONADO

INVESTIGANDO UN POCO HE DADO CON LA SOLUCIÓN

La solución era usar un LEFT JOIN

Código:
select TABLA1.id, TABLA1.razonsocial, TABLA2.nombre, TABLA2.apellido1, TABLA2.apellido2 
from TABLA1
left join TABLA2
on TABLA2.idtercero = TABLA1.id

Etiquetas: campo, campos, registro, relacion, select, tabla, tablas, todo
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 19:45.