Problemas para relacionar un registro con varios
Publicado por Federico (1 intervención) el 23/06/2023 20:14:50
Hola, resulta que tengo una tabla de temas musicales donde defino Compositor1 compositor2 compositor3 letrista1 letrista2 y letrista3. Por otro lado una tabla de artistas. Esos artistas pueden aparecer en la tabla de temas como compositor1, 2, 3 o letrista1, 2 o 3.
Cuando quiero ejecutar una consulta donde me aparezcan los nombres asociados a estos 6 campos, (Pueden ser iguales o no, me refiero que el compositor1 puede ser el mismo que el letrista1) me indica que debo hacer una consulta sobre otra consulta, de esta manera en mi primer consulta (llamemosla "Nombre del compositor 1") obtengo el nombre del tema con el nombre del compositor1. Luego hago una nueva consulta tomando como base la consulta anterior en lugar de la tabla a la que llamo "Nombre compositor 1 y 2" y efectivamente obtengo el nombre del tema con los correspondientes nombres de los compositores 1 y 2. Realizo una tercer consulta agregando el 3 compositor y todo ok. El problema es cuando hago la cuarta tabla porque obtengo todo menos el nombre del compositor2. Ya en la quinta tabla, donde aparecerian compositor1,2 y 3, letrista 1 y 2 me da directamente error "Puede que el campo ´Letrista1.Compositor2.Artistas.ArtistaNombreReal´ especificado haga referencia a más de una talba de las mostradas en la cláusula FROM de la instrucción SQL.
La instrucción es: SELECT Letrista1.IdTema, Temas.TemaNombre, Letrista1.NombreGéneroMusical, Temas.IdCompositor1, Letrista1.Compositor1.ArtistaNombreReal, Letrista1.Compositor1.ArtistaApellidoReal, Temas.IdCompositor2, Letrista1.Compositor2.Artistas.ArtistaNombreReal, Letrista1.Compositor2.Artistas.ArtistaApellidoReal, Temas.IdCompositor3, Letrista1.Compositor3.Artistas.ArtistaNombreReal, Letrista1.Compositor3.Artistas.ArtistaApellidoReal, Temas.IdLetrista1, Letrista1.Artistas.ArtistaNombreReal, Letrista1.Artistas.ArtistaApellidoReal, Temas.IdLetrista2, Artistas.ArtistaNombreReal, Artistas.ArtistaApellidoReal
FROM (Artistas RIGHT JOIN Temas ON Artistas.IDArtista = Temas.IdLetrista1) INNER JOIN Letrista1 ON Temas.IdTema = Letrista1.IdTema;
Alguien puede darme una solución? Lo he revisado y rehecho varias veces con el mismo resultado, gracias
Cuando quiero ejecutar una consulta donde me aparezcan los nombres asociados a estos 6 campos, (Pueden ser iguales o no, me refiero que el compositor1 puede ser el mismo que el letrista1) me indica que debo hacer una consulta sobre otra consulta, de esta manera en mi primer consulta (llamemosla "Nombre del compositor 1") obtengo el nombre del tema con el nombre del compositor1. Luego hago una nueva consulta tomando como base la consulta anterior en lugar de la tabla a la que llamo "Nombre compositor 1 y 2" y efectivamente obtengo el nombre del tema con los correspondientes nombres de los compositores 1 y 2. Realizo una tercer consulta agregando el 3 compositor y todo ok. El problema es cuando hago la cuarta tabla porque obtengo todo menos el nombre del compositor2. Ya en la quinta tabla, donde aparecerian compositor1,2 y 3, letrista 1 y 2 me da directamente error "Puede que el campo ´Letrista1.Compositor2.Artistas.ArtistaNombreReal´ especificado haga referencia a más de una talba de las mostradas en la cláusula FROM de la instrucción SQL.
La instrucción es: SELECT Letrista1.IdTema, Temas.TemaNombre, Letrista1.NombreGéneroMusical, Temas.IdCompositor1, Letrista1.Compositor1.ArtistaNombreReal, Letrista1.Compositor1.ArtistaApellidoReal, Temas.IdCompositor2, Letrista1.Compositor2.Artistas.ArtistaNombreReal, Letrista1.Compositor2.Artistas.ArtistaApellidoReal, Temas.IdCompositor3, Letrista1.Compositor3.Artistas.ArtistaNombreReal, Letrista1.Compositor3.Artistas.ArtistaApellidoReal, Temas.IdLetrista1, Letrista1.Artistas.ArtistaNombreReal, Letrista1.Artistas.ArtistaApellidoReal, Temas.IdLetrista2, Artistas.ArtistaNombreReal, Artistas.ArtistaApellidoReal
FROM (Artistas RIGHT JOIN Temas ON Artistas.IDArtista = Temas.IdLetrista1) INNER JOIN Letrista1 ON Temas.IdTema = Letrista1.IdTema;
Alguien puede darme una solución? Lo he revisado y rehecho varias veces con el mismo resultado, gracias
Valora esta pregunta
0