Hoy estoy de buenas :) asi que te lo explico con inserts y selects :)
Código SQL:
Ver originalCREATE TABLE #proyectos(
id INT,
nombre VARCHAR(20)
)
CREATE TABLE #proyecto_proyectista
(
id_proyecto INT,
id_proyectista INT
)
CREATE TABLE #proyectista(
id INT,
nombre VARCHAR(20)
)
INSERT INTO #proyectos VALUES (1,'Proyecto 1')
INSERT INTO #proyectos VALUES (2,'Proyecto 2')
INSERT INTO #proyectos VALUES (3,'Proyecto 3')
INSERT INTO #proyecto_proyectista VALUES (1,1)
INSERT INTO #proyecto_proyectista VALUES (1,2)
INSERT INTO #proyecto_proyectista VALUES (1,3)
INSERT INTO #proyecto_proyectista VALUES (2,1)
INSERT INTO #proyectista VALUES (1,'Libras')
INSERT INTO #proyectista VALUES (2,'Libras2')
INSERT INTO #proyectista VALUES (3,'Libras3')
SELECT t3.* FROM #proyectos AS t1
LEFT JOIN #proyecto_proyectista AS t2 ON (t1.id=t2.id_proyecto)
LEFT JOIN #proyectista AS t3 ON (t2.id_proyectista=t3.id)
WHERE t3.id IS NOT NULL AND t1.nombre='Proyecto 1'
---Regresa 3 proyectistas que estan en el proyecto 1 Libras1,Libras2 y Libras3
SELECT t3.* FROM #proyectos AS t1
LEFT JOIN #proyecto_proyectista AS t2 ON (t1.id=t2.id_proyecto)
LEFT JOIN #proyectista AS t3 ON (t2.id_proyectista=t3.id)
WHERE t3.id IS NOT NULL AND t1.nombre='Proyecto 2'
--Regresa solo 1 proyectista que esta en el proyecto2 Libras1
Cabe mencionar que faltan las PK y sus respectivas FK :P