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

relacion doble

Estas en el tema de relacion doble en el foro de SQL Server en Foros del Web. Buenas a todos. Cuento el problema que me viene fastidiando a ver que se os ocurre. Tenemos una tabla con usuarios, solamente tiene 2 campos, ...
  #1 (permalink)  
Antiguo 02/09/2009, 11:45
 
Fecha de Ingreso: abril-2008
Ubicación: Frente a mi máquina que suele estar en ... Cartagena-España
Mensajes: 106
Antigüedad: 16 años
Puntos: 8
relacion doble

Buenas a todos.
Cuento el problema que me viene fastidiando a ver que se os ocurre.

Tenemos una tabla con usuarios, solamente tiene 2 campos, ID, nombre y apellidos. En otra tabla Registros tengo ID, UsuarioCreador y UsuarioExperto, donde UsuarioCreador y UsuarioExperto están relacionados con el ID de usuario.

Para ayudar que me explico fatal

[Usuarios]
ID Nombre Apellidos
JOS Jose Perez Gomez
JUA Juan Sanchez Jerez

[Registros]
ID UsuarioCreador UsuarioExperto
001 JOS JUA
002 JOS JOS
003 JUA JOS

Pos bien, lo que no consigo hacer es devolver el nombre de los dos usuario mediante un select, lo que no puedo hacer es algo como lo siguiente para que devuelva nombre y apellidos en un solo campo para sacarlo en un datagridView todos los registros:

select ID
Usuarios.Nombre + ' ' + Usuarios.Apellidos as UsuarioExperto,
Usuario
from [Registros]
inner join Usuarios on
UsuarioExperto_IGP = Usuarios.Codigo

and

select ID,
Usuarios.Nombre,
Usuarios.Nombre + ' ' + Usuarios.Apellidos as UsuarioExperto,
from [Registros]
inner join Usuarios on
UsuarioCreador = Usuarios.Codigo


No se si me explico
Gracias de antemano!
  #2 (permalink)  
Antiguo 02/09/2009, 11:57
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: relacion doble

Código:
SELECT [ID],
        ue.Nombre + ' ' + ue.Apellidos as UsuarioExperto,
        uc.Nombre + ' ' + uc.Apellidos as UsuarioCreador,
FROM       [Registros] r
INNER JOIN Usuarios ue 
ON         r.UsuarioExperto_IGP = Usuarios.Codigo
INNER JOIN Usuarios uc 
ON         r.UsuarioCreador = Usuarios.Codigo
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 02/09/2009, 11:59
 
Fecha de Ingreso: abril-2008
Ubicación: Frente a mi máquina que suele estar en ... Cartagena-España
Mensajes: 106
Antigüedad: 16 años
Puntos: 8
Respuesta: relacion doble

Que grande tio!!!
Conclusión: toy más perdió que na!!

Muchas gracias!
  #4 (permalink)  
Antiguo 29/02/2012, 04:31
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: relacion doble

Hola, se que el post es antiguo, pero a ver si me podeis ayudar:
Tengo dos tablas:

Viajes
-------------
ID, Origen, Destino, Fecha

Ciudades
-------------
ID, Nombre

En las columnas Origen y Destino de la tabla viajes hay ID de la tabla ciudades, y necesito hacer una consulta donde aparezcan:
viajes.ID , viajes.Origen y su relación ciudades.Nombre, viajes.Destino y su relacion ciudades.Nombre, viajes.fecha

¿ podéis ayudarme? He intentado adaptar el ejemplo anterior y no soy capaz. La base de datos es MS SQL.

Muchas gracias!!!!!!

Saludos
  #5 (permalink)  
Antiguo 29/02/2012, 07:48
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: relacion doble

que avance tienes?


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 29/02/2012, 07:48
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: relacion doble

Asi?
Código SQL:
Ver original
  1. SELECT v.ID, v.Origen, o.Nombre, v.Destino, d.Nombre, v.fecha
  2. FROM Viajes v
  3. INNER JOIN Ciudades o ON v.Origen = o.ID
  4. INNER JOIN Ciudades d ON v.Origen = d.ID
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
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 21:09.