Usuario
Acceder dos veces a un primary key en otra tabla

Pregunta
-
Buenas, tengo una duda respecto a unas consultas en SQL Server.
Se me pide mostrar una tabla de entrenadores la cual tiene dos certificados, y de cada certificado sus datos, sin embargo los datos de ambos certificados estan en la misma tabla, y cuando quiero hacerlo mediante un Inner Join, la salida solo muestra los datos de un certificado
select * from T_Entrenadores
inner join T_Certificados ON T_Entrenadores.Certificado1 = T_Certificados.Titulo_certificado
and T_Entrenadores.Certificado2 = T_Certificados.Titulo_certificadoesta es la instruccion con la que intente hacer eso, espero sirva de ejemplo para lo que intento hacer
Todas las respuestas
-
Hola J_140301:
select * from T_Entrenadores LEFT join T_Certificados c1 ON T_Entrenadores.Certificado1 = c1.Titulo_certificado LEFT JOIN T_Certificados c2 on T_Entrenadores.Certificado2 = c2.Titulo_certificado
A priori parece una consulta sobre la misma tabla.
Prueba la query que te muestro y comentas.
Te he cambiado el inner join por left join, por si no tuviese los dos certificados.
Para mostrar las columnas tan solo tienes que acceder a sus tablas por el alias (c1 o c2)
- Propuesto como respuesta Alberto PoblacionMVP martes, 23 de marzo de 2021 13:09
-
esta es la instruccion con la que intente hacer eso
Con esa instrucción que has escrito, estás buscando un registro de la tabla de entrenadores en el que los dos campos de certificados sean iguales entre sí y coincidan con un único registro de la tabla de certificados.
Para buscar los dos campos en dos registros de la otra tabla, hay que unir la tabla dos veces. Y para poderla unir dos veces, hay que poner dos alias distintos en cada una de las dos veces que se une. Estos dos alias son los c1 y c2 que te ha escrito Javi en su respuesta.
-