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

[SOLUCIONADO] Insertar datos en 1 tabla de 2 tablas diferentes

Estas en el tema de Insertar datos en 1 tabla de 2 tablas diferentes en el foro de Mysql en Foros del Web. Estimados: Soy nuevo en el foro, pero vi que daban excelentes respuestas, les explico mi problema es que necesito juntar de 2 tablas diferentes con ...
  #1 (permalink)  
Antiguo 13/11/2013, 14:26
 
Fecha de Ingreso: noviembre-2013
Mensajes: 13
Antigüedad: 10 años, 5 meses
Puntos: 0
Insertar datos en 1 tabla de 2 tablas diferentes

Estimados:


Soy nuevo en el foro, pero vi que daban excelentes respuestas, les explico mi problema es que necesito juntar de 2 tablas diferentes con distintos datos en 1 tabla como ilustro en un bosquejo, y no puedo debido a que al hacerlo no me permite, que puedo hacer?, ojala me entiendan :C

tabla a lo que quiero hacer
horario horariosAlum alumnos
8:00-9:00 8:00-9:00 Max
9:00-10:00 9:00-10:00 Jc
11:00-12:00
12:00-13:00

primera
horarios
8:00-9:00
9:00-10:00
11:00-12:00
12:00-13:00

segunda
horarios alumnos
8:00-9:00 Max
9:00-10:00 Jc
  #2 (permalink)  
Antiguo 13/11/2013, 14:34
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: Insertar datos en 1 tabla de 2 tablas diferentes

Bueno, partamos de que decir "y no puedo debido a que al hacerlo no me permite" es información insuficiente, ya que no se entiende cómo lo estás intentando, como para saber a qué te refieres con eso.
Si no vemos como intentas el JOIN, es bastante difícil saber por donde la estás pifiando.

Como sea, no parece que un JOIN basado en campos de horas sea una buena idea. Deberías hacerlo de otro modo, con PKs que sean FK en la tabla de alumnos, tal que fuese una relación más clara.
Da la impresión que realmente ese diseño tiene defectos.

Dde todos modos, la idea sería:
Código MySQL:
Ver original
  1. SELECT H.horarios, A.horarios HorariosAlumnos, A.alumnos
  2. FROM horarios H INNER JOIN alumnos A ON H.horarios = A.horarios
pero como dije, parece un mal diseño de tablas para el caso.
__________________
¿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 13/11/2013, 15:42
 
Fecha de Ingreso: noviembre-2013
Mensajes: 13
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Insertar datos en 1 tabla de 2 tablas diferentes

estimado, esta bien lo que dices, hice esa consulta entre todas las que intente, funciona pero lo que necesito es que me traiga h.horario completo, debido a que al hacer el inner join con a.horario me trae solo los registros de a.horario, no me tira todo el h.horario, no se si me explico.

graficamente es esto: donde la consulta me traiga todo lo de h.horario y lo otros campos como no tienen los mismos valores que me los traiga como vacios
h.horario a.horario a.alumnos
8:00 8:00 Max
9:00
10:00
11:00

actualmente me trae
h.horario a.horario a.alumnos
8:00 8:00 Max
  #4 (permalink)  
Antiguo 13/11/2013, 17:27
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: Insertar datos en 1 tabla de 2 tablas diferentes

Te conviene ponerte a estudiar urgente los principios del uso de JOIN en sus tres formas: INNER, LEFT y RIGHT, ya que el problema es de manual básico. Disculpa que te lo diga así, pero es un tema que se ha tratado infinidad de veces en los foros de bases de datos.
Este tipo de consultas es es extremadamente simple, y las verás en todos los tutoriales más comunes que puedas buscar:
Código MySQL:
Ver original
  1. SELECT H.horarios, IFNULL(A.horarios, '') HorariosAlumnos, IFNULL(A.alumnos,'') Alumnos
  2. FROM horarios H LEFT JOIN alumnos A ON H.horarios = A.horarios
En un LEFT JOIN, la consulta devuelve todo lo que contiene la primera tabla (izquierda, o LEFT), tenga o no coincidencias con la segunda (de la derecha), poniendo NULLL en todas las columnas de la segunda tabla que se indiquen en el SELECT. Como NULL no es muy manejable por programacion, es mejor aplicar IFNULL() , para reemplazar esos NULL por otra cosa, en este caso un caracter vacío.
Si: Un caracter vacío no es NULL. Es otra cosa. Tampoco es NULL un espacio vacío.
__________________
¿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 14/11/2013, 08:25
 
Fecha de Ingreso: noviembre-2013
Mensajes: 13
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Insertar datos en 1 tabla de 2 tablas diferentes

gracias... con eso estoy listo, y haré lo que me dices.

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