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

Vincular registros de 2 tablas en forma aleatoria

Estas en el tema de Vincular registros de 2 tablas en forma aleatoria en el foro de Bases de Datos General en Foros del Web. necesito hacer algo que quizas no se pueda hacer con una query. lei algo de recorrer las tablas con cursores pero me pareció muy complicado. ...
  #1 (permalink)  
Antiguo 01/05/2012, 08:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 42
Antigüedad: 13 años, 7 meses
Puntos: 0
Exclamación Vincular registros de 2 tablas en forma aleatoria

necesito hacer algo que quizas no se pueda hacer con una query.
lei algo de recorrer las tablas con cursores pero me pareció muy complicado.

tengo una tabla1 con 20 registros:

campos: A, B y C

tengo una tabla2 tambien con 20 registros:
campo unico: D


Lo que quiero es generar una tabla3 con 20 registros
y con los campos A - B - C - D

el emparejamiento quiero que sea 1 a 1, cualquiera con cualquiera.
pero sin repetir parejas de registros, se entiende ?

tendria que ir barriendo cada tabla en forma secuencial y armar las parejas de registros. pero como se logra esto ? con una simple query ?

gracias.
  #2 (permalink)  
Antiguo 01/05/2012, 08:57
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, 4 meses
Puntos: 2658
Respuesta: Vincular registros de 2 tablas en forma aleatoria

¿Y cuál es la relación que existe entre Tabla1 y Tabla2?

Lo que planteas es que te devuelva exactamente un registro de la Tabla1 junto con un único registro de la Tabla2. Para que ellos se pueda hacer debe forzosamente existir una relación de cardinalidad 1:1 entre ambas tablas, especialmente considerando que ambas tienen la misma cantidad de registros.

Incluso se puede decir que si tienes dos tablas, pero una de ellas tiene un único dato por registro, y la relación es 1:1, no se comprende para qué existe esa segunda tabla, porque ese dato debería ser parte de la primera... Necesitaríamos una mejor descripción del escenario real, y no uno imaginario.

Como sea, si no defines cuál es la relación entre ambas tablas, no se puede construir una consulta que te devuelva lo que necesitas. Al menos no en SQL.
__________________
¿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 01/05/2012, 09:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 42
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Vincular registros de 2 tablas en forma aleatoria

Ese es el punto, no hay ninguna relacion entre los registros.

si, es un caso extraño, pero necesito hacer eso para un trabajo practico :(
  #4 (permalink)  
Antiguo 01/05/2012, 09:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 42
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Vincular registros de 2 tablas en forma aleatoria

Voy a plantear con detalle que es lo que quiero hacer, para ver si hay otra forma de solucionarlo:

1) yo cree esta vista:

CREATE VIEW autosrelojes AS
SELECT DISTINCT auto_marca, auto_modelo, auto_patente, auto_licencia, auto_rodado, reloj_marca, reloj_modelo, reloj_fecha_ver
FROM tablamaestra

2) Cree una tabla "reloj" que va a agregar datos de la vista anterior.
(se genera un id aleatorio para la PK: nro_serie)

INSERT INTO reloj(nro_serie,marca,modelo,fecha_verificacion,st atus)
SELECT CONVERT(varchar(36), NEWID()), reloj_marca, reloj_modelo, reloj_fecha_ver, 1 FROM autosrelojes

(Hasta acá viene bien)

3) Cree una tabla "auto" que va a agregar datos de la vista anterior + los ids
aleatorios generados anteriormente

(FK: reloj , donde se guardan los nro_serie)

INSERT INTO auto (patente,licencia,reloj,marca,modelo,rodado,status )
SELECT auto_patente,auto_licencia, "ACA ESTA MI PROBLEMA" , auto_marca, auto_modelo, auto_rodado,1 FROM autosrelojes

Donde marque el problema, debo poner el id generado anteriormente que ya esta guardado
en la tabla "reloj". Como hago para ir leyendo de la tabla relojes e ir insertando 1 por 1.

se que es complicado, pero respondo lo que sea necesario para obtener la solucion :)

Etiquetas: aleatoria, registro, registros, tabla, tablas, vincular, formulario, campos
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 03:06.