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

consultas con inner join

Estas en el tema de consultas con inner join en el foro de SQL Server en Foros del Web. Quería saber si se puede hacer un inner join entre tablas que no estan relacionadas pero tienen el mismo campo en comun... Ejemplo de tablas ...
  #1 (permalink)  
Antiguo 05/05/2015, 23:35
 
Fecha de Ingreso: mayo-2015
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
consultas con inner join

Quería saber si se puede hacer un inner join entre tablas que no estan relacionadas pero tienen el mismo campo en comun...

Ejemplo de tablas

transaccion claves primarias(codtransaccion) claves foraneas(codcuenta,codcliente,codsucursal)
cuenta claves primarias( codcuenta,codsucursal)
cuentaxcliente claves primarias(codcuenta,codcliente,codsucursal)
clientes claves primarias(codcliente)
sucursal claves primarias(codsucursal)

y quiero hacer un inner join con la tabla clientes y transacción para saber los datos de el cliente.


Y otra consulta aparte con inner join entre sucursales y transacción para saber los datos de la sucursal


Ya que transacción depende de cuentas por cliente, y
cuentas por cliente de clientes y cuentas, y cuentas de sucursal
  #2 (permalink)  
Antiguo 06/05/2015, 00:12
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 5 meses
Puntos: 40
Respuesta: consultas con inner join

La respuesta es "sí, se puede": no es obligatorio crear una clave foránea entre las tablas, aunque en algunos casos puede mejorar mucho el rendimiento.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 06/05/2015, 07:27
 
Fecha de Ingreso: mayo-2015
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: consultas con inner join

claro, entonces deberia hacer un
Código SQL:
Ver original
  1. SELECT cliente.* ,transacciones.*
  2. FROM transacciones INNER JOIN clientes ON transacciones.codcliente=clientes.codcliente ??
no tendria q seguir la relacion entre las tablas
Código SQL:
Ver original
  1. SELECT clientes.* ,t.*   f
  2. rom cuentxclient  INNER JOIN transacciones t ON t.codcliente=cuentxclient.codcliente
  3. AND  t.codsucursal=cuentxcliente.codsucursal
  4. AND t.codcuenta=cuentxclient.codcuenta  
  5. INNER JOIN clientes cuentxcliente.codcliente=clientes.codcliente

Última edición por gnzsoloyo; 06/05/2015 a las 08:07
  #4 (permalink)  
Antiguo 06/05/2015, 08:06
 
Fecha de Ingreso: mayo-2015
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: consultas con inner join

claro, entonces deberia hacer un
Código SQL:
Ver original
  1. SELECT cliente.* ,transacciones.* FROM transacciones INNER JOIN clientes ON transacciones.codcliente=clientes.codcliente

no tendria que seguir la relacion entre las tablas, ya que transacciones(codcliente,codsucursal,codcuenta claves foraneas) depende de cuentasxcliente
(codcliente,codsucursal,codcuenta claves principales)
y no de cliente que depende de cuentaxcliente (codcliente clave principal de la tabla clientes)

transacciones->cuentaxcliente->cliente


Código SQL:
Ver original
  1. SELECT clientes.* ,t.* FROM cuentxclient INNER JOIN transacciones t
  2. ON t.codcliente=cuentxclient.codcliente AND t.codsucursal=cuentxcliente.codsucursal
  3. AND t.codcuenta=cuentxclient.codcuenta INNER JOIN clientes cuentxcliente.codcliente=clientes.codcliente
  #5 (permalink)  
Antiguo 06/05/2015, 08:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consultas con inner join

Por favor, usa los highlight cuando pongas códigos.
De lo contrario se vuelven ilegibles.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 06/05/2015, 09:12
 
Fecha de Ingreso: mayo-2015
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
uso del inner join

Quería saber si se puede hacer un inner join entre tablas que no estan relacionadas en un DER pero si tienen el mismo campo en comun

Tablas

transaccion claves primarias(codtransaccion) claves foraneas(codcuenta,codcliente,codsucursal)

cuenta claves primarias( codcuenta,codsucursal)

cuentaxcliente claves primarias(codcuenta,codcliente,codsucursal)

clientes claves primarias(codcliente)

sucursal claves primarias(codsucursal)


Quiero hacer un inner join con la tabla clientes y transacción para saber los datos de el cliente que efectuo cada una de las transacciones.

No tendria que seguir la relacion entre las tablas, ya que transacciones(codcliente,codsucursal,codcuenta claves foraneas) depende de cuentasxcliente
(codcliente,codsucursal,codcuenta claves principales)
y no de la tabla cliente que es a la que depende cuentasxcliente. Pero la tabla transacciones tiene como clave foranea el codigo de cliente que heredo de la tabla cuentasxcliente junto con el codigo de sucursal y de cuenta.


Queria saber si puedo hacer inner join entre las tablas transacciones y clientes igual, si no importa esta relacion que existe, o deberia hacer inner join entre transacciones,cuentasxcliente, y cliente?

Cual de estos dos codigos estaria en lo correcto.

Código SQL:
Ver original
  1. SELECT cliente.* ,transacciones.* FROM transacciones INNER JOIN clientes ON transacciones.codcliente=clientes.codcliente


Código SQL:
Ver original
  1. SELECT clientes.* ,t.* FROM cuentxclient INNER JOIN transacciones t
  2. ON t.codcliente=cuentxclient.codcliente AND t.codsucursal=cuentxcliente.codsucursal
  3. AND t.codcuenta=cuentxclient.codcuenta INNER JOIN clientes cuentxcliente.codcliente=clientes.codcliente
  #7 (permalink)  
Antiguo 06/05/2015, 09:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consultas con inner join

No abras hilos nuevos para el mismo tema, por favor.
Serán fusionados o borrados sin pevio aviso, como expresan las PDU.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 06/05/2015, 09:16
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: consultas con inner join

Mientras tengan un campo en comun puedes hacer el join no importan las relaciones......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: inner-join, join, 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 19:57.