[SOLUCIONADO] Duda sobre mysql - joins

Iniciado por elshotta, Mayo 19, 2020, 06:37:49 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 19, 2020, 06:37:49 PM Ultima modificación: Mayo 21, 2020, 08:58:51 PM por DtxdF
Hola a todos,
estoy intentando hacer un join entre dos tablas pero quiero que esa información del join la inserte en otra tabla
¿es eso posible con mysql?
gracias

Hola No tienes permitido ver los links. Registrarse o Entrar a mi cuenta,

Claro que es posible. Podrías dejarnos si deseas, lo que has intentado y tu consulta, así se podría ajustar. Por ejemplo, haces primero un INSERT, luego un SELECT contiguo al INNER JOIN.

Un saludo.
Become the change you seek in the world. -Gandhi.


Hola gracias por responder,
pues es que el profesor nos enseño a hacer un join y ponerlo en una vista pero yo necesito es tomar los datos y agregarlos a una tabla diferente pero al hacer el insert into no logro entender como debo poner los datos
Código: mysql
INSERT INTO solicitudes 
SELECT  C.nombre, C.apellido,  numero_caddie, categoria, CONCAT(J.nombre,'  ',J.apellido) "DATOS JUGADOR"
FROM caddies C
JOIN jugador J
ON C.Id_caddies=J.Id_jugador

Aca muestro la estructura de la tabla a la que quiero ingresar los datos tomados del join
Código: mysql
create table Solicitudes(   
    Id_solicitud int AUTO_INCREMENT primary key,
    Id_caddie int,
    nombre_caddie varchar(30),
    apellido_caddie varchar(30),
    numero_caddie int(3),
    categoria_caddie varchar(15),
    Id_jugador int,
   nombre_jugador varchar(30),
   apellido_jugador varchar(30),
    estado_caddie int(1),
    FOREIGN KEY (Id_caddie)REFERENCES Caddies(Id_caddies),
    FOREIGN KEY (Id_jugador) REFERENCES Jugador(Id_jugador)
   
   
    );

Mayo 20, 2020, 07:29:20 AM #3 Ultima modificación: Mayo 20, 2020, 10:02:32 AM por DtxdF
Concurso ganador:

Para hacer más realista el ejemplo (y quizás un poco complejo), en este tutorial se le mostrará cómo insertar registros de MySQL (sin usar un lenguaje de programación) mientras usa 'JOIN' en una suposición. Habrá cosas tenebrosas (y quizá nuevas), pero estoy seguro que se le responderá su duda, mientras que lo que no entienda, se lo dejó al poder de su propia investigación.

Creación de tablas:

Código: mysql
/* Creamos una tabla para los que deseen participar */
CREATE TABLE inscription (
  id int NOT NULL AUTO_INCREMENT,
  name varchar(30) NOT NULL,
  lastname varchar(50) NOT NULL,
  age int NOT NULL,
  PRIMARY KEY (id)
);

/* Creamos una tabla para los tickets */
CREATE TABLE tickets (
  id_ticket int NOT NULL AUTO_INCREMENT,
  id int NOT NULL,
  ticket char(5) NOT NULL,
  PRIMARY KEY (id_ticket),
  FOREIGN KEY (id) REFERENCES inscription (id) ON DELETE RESTRICT ON UPDATE RESTRICT
);

/* Creamos una tabla para los ganadores */
create table winners (
  name varchar(30) not null,
  lastname varchar(50) not null,
  age int not null,
  win BOOL not null,
  ticket char(5) not null
);


Inserción de registros:

Primero insertamos los participantes:

Código: mysql
/* Se insertan 3 participantes */
INSERT INTO inscription(name, lastname, age) VALUES("Jesús", "Colmenares", 17);
INSERT INTO inscription(name, lastname, age) VALUES("Josef", "Naranjo", 17);
INSERT INTO inscription(name, lastname, age) VALUES("Nikola", "Tesla", 86);


Ahora insertamos los tickets para los participantes:

Código: mysql
INSERT INTO tickets(id, ticket) SELECT id, HEX(round(rand() * 1000000)) as ticket FROM inscription;


Ahora observamos quién o quiénes son los ganadores (insertamos los datos usando JOIN):

Código: mysql
INSERT INTO winners(name, lastname, age, win, ticket) SELECT inscription.name, inscription.lastname, inscription.age, round(rand()), tickets.ticket FROM inscription JOIN tickets WHERE inscription.id = tickets.id;


tambores...

Código: text
+--------+------------+-----+-----+--------+
| name   | lastname   | age | win | ticket |
+--------+------------+-----+-----+--------+
| Josef  | Naranjo    |  17 |   0 | 93364  |
| Jesús  | Colmenares |  17 |   0 | 84AFF  |
| Nikola | Tesla      |  86 |   1 | DDCCF  |
+--------+------------+-----+-----+--------+
3 rows in set (0.000 sec)


~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Muchas gracias,
si es exactamente lo que estaba pidiendo, ya pueden dar por solucionado el post.
gracias