Hola a todos, tengo un problema gordo que no se resolver y me urge a ver si podeis echarme una mano. Tengo una bbdd con 3 tablas:
Grupo (id_grupo, nombre)
1, Programadores
2, Diseñadores
3, Gerencia
Trabajo (id_trabajo,trabajo)
101, Web jamoneros
102, Aplicación lanchas
103, Buscador php
Nexo (id_grupo*, id_trabajo*)
101, 1
101, 2
101, 3
102, 2
103, 1
Siendo primary keys todas las que son id_*.
Un trabajo pudieron hacerlo uno o varios grupos lo cual se reflejará en la tablar nexo.
Quiero saber en que trabajos solo ha participado un grupo, que yo elijo y sacar la lista de todos los id_trabajo como resultado.
Estoy trabajando sobre esto:
SELECT n.id_trabajo, trabajo FROM nexo n WHERE
n.id_trabajo IN (SELECT n.id_trabajo FROM trabajo t,grupo g, nexo n
WHERE (t.id_trabajo=n.id_trabajo AND n.id_grupo=g.id_grupo) AND g.grupo
LIKE ‘Programadores')
AND 1=(SELECT count(n.id_grupo)=1 FROM nexo n WHERE
n.id_trabajo IN (SELECT n.id_trabajo FROM trabajo t,grupo g, nexo n WHERE
(t.id_trabajo=n.id_trabajo AND n.id_grupo=g.id_grupo) AND g.grupo
LIKE ‘Programadores')
);
Pero el AND 1=(SELECT count(n.id_grupo)=1 FROM no vale para nada porque no solo necesito sacarle el numero de grupos que participan sino de que trabajo se trata y:
AND 1=(SELECT n.id_trabajo,count(n.id_grupo)=1 logicamente no deja.
Seguro que hay varias formas de afrontar esta query me vale cualquier ayuda.
Muchísimas gracias