Foros del Web » Programando para Internet » PHP »

insert into

Estas en el tema de insert into en el foro de PHP en Foros del Web. Hola a todos !!! Mi pregunta es la siguiente: Se puede hacer un insert into en una tabla concreta,sacando datos de distintas tablas????? Esto es ...
  #1 (permalink)  
Antiguo 18/05/2009, 02:55
 
Fecha de Ingreso: abril-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
insert into

Hola a todos !!!

Mi pregunta es la siguiente:

Se puede hacer un insert into en una tabla concreta,sacando datos de distintas tablas?????
Esto es se pueden meter datos en una tabla concreta, obteniendo datos con selects de distintas tablas???

Un saludo
  #2 (permalink)  
Antiguo 18/05/2009, 06:13
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: insert into

no se muy bien si se puede en SQL, pero prueba primero sacando los datos que necesites de las distintas tablas, colocas esos datos en variables y luego haces un insert con esas variables
  #3 (permalink)  
Antiguo 18/05/2009, 06:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: insert into

Si puedes hacer insert con select de los datos que quieres!!!
  #4 (permalink)  
Antiguo 18/05/2009, 10:12
 
Fecha de Ingreso: abril-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Respuesta: insert into

Muchas gracias, por la ayuda, pero dos cosas:

1. como guardo los datos que obtengo de un select en una variable????

2. He probado ha hacer un select dentro del insert into, y me sale bien, pero claro ese select k hago es de una sola tabla, pero puedo hacer mas de un select de distintas tablas y esos resultados guardarlos mediante insert into???

Un saludo y gracias por todo.
  #5 (permalink)  
Antiguo 18/05/2009, 10:30
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: insert into

Te pongo aquí un trozo de un código mío para que veas como asignar a variables valores de una tabla.

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM recambista WHERE nomrec='$nomrec' and clave='$clave'";
//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);
while ($datos=mysql_fetch_array($rs)){
$nrec=$datos['nrec'];
}

Explico lo que hace por si no te queda claro: Conecto a la base de datos (eso lo he omitido), escribo la sentencia, la ejecuto y entonces mientras se de la consulta, asigno a la variable $nrec el valor de la celda nrec de la tabla recambista.
Este caso lo uso en un login, y como solo habrá un usuario con ese nombre y esa clave, la sentencia solo se va a dar una vez, por lo que solo asignará el nombre de usuario una vez a la variable $nrec.


Para hacer un select de distintas tablas tienes que seguir la siguiente sintaxis:
SELECT tabla1.campo1,tabla1.campo2...tabla1.campoN,tabla2 .campo1,tabla2.campo2...tabla2.campoN FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1 = tabla2.campo1;

Donde campo1 es el enlace entre las dos tablas.

Espero aclararte algo igorgurpil. Un saludo... y da un punto de karma si quieres...
__________________
Dando cabezados se aprende...
  #6 (permalink)  
Antiguo 19/05/2009, 02:36
 
Fecha de Ingreso: abril-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Respuesta: insert into

Muchas gracias por la ayuda, pero otra cueston rapida, haber si me podeis ayudar.

Se puede hacer un insert into combinado con un select y values???

Esto es, esque tengo varias variables con datos que quiero meter en la tabla, pero a la vez en esta tabla tambien necesito meter otra informacion que no la tengo guardada en variables y la cual la tengo que sacar de un select. Se puede combinar las dos sentencias dentro de un insert into???

Un saludo y gracias por todo
  #7 (permalink)  
Antiguo 19/05/2009, 03:40
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: insert into

Muy fácil. Creía que sabías hacerlo... pero vamos... hay que googlear un poco también. Ahí va:

INSERT INTO tablaDestino (campo1,campo2...campoN) SELECT campo1,campo2,...campoN FROM tablaOrigen;

Si quieres sacar datos de dos tablas:

INSERT INTO tablaDestino (campo1,campo2...campoN) SELECT tablaOrigen1.campo1,...tablaOrigen1.campoN,tablaOr igen2.campo1,...tablaOrigen2.campoN FROM tablaOrigen1 INNER JOIN tablaOrigen2 ON tablaOrigen1.campo1 = tablaOrigen2.campo1;

Espero que te sirva.
Un saludo.
__________________
Dando cabezados se aprende...
  #8 (permalink)  
Antiguo 19/05/2009, 08:03
 
Fecha de Ingreso: abril-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Respuesta: insert into

Gracias por la ayuda, pero eso ya sabia hacer, seguramente no me haya explicado bien, a mi me gustaria saber si puedo hacer un:

INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
INSERT INTO tablaDestino (campo1,campo2...campoN) SELECT campo1,campo2,...campoN FROM tablaOrigen;

Esto es, haber si puedo convinar las dos sentencias, ya que tengo registros guardados en variables, y otros registros tendria k sacarlos haciendo un select, es posible esto????

Un saludo y gracias por todo.
  #9 (permalink)  
Antiguo 19/05/2009, 08:14
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: insert into

Vale, ya te he entendido. No se si lo que pides se puede hacer, pues nunca lo he hecho, y ahora mismo no me acuerdo de la teoría exacta. Se me ocurre que podría ser así, si es que se puede hacer, pero no te lo aseguro, deberías preguntar en un foro de SQL que es más adecuado.

INSERT INTO tablaDestino (campo1,campon-1,campon) VALUES ('$campo1','(SELECT campon-1,campon FROM tablaOrigen)');

Prueba con eso, pero vamos, lo mejor va a ser preguntar en un foro SQL. Un saludo!
__________________
Dando cabezados se aprende...
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 16:53.