hola a todos, tengo una consulta con respecto a LEFT JOIN, tengo 4 tablas, tipos_personas,personas,cursos,personas_cursos. En esta ultima tabla es producida por la relacion n:m entre las personas y cursos primeras tablas.
lo se almacena en personas_cursos son aque las personas que van a un curso en un determinado año
Código SQL:
Ver originalPersonas
+---------------
| FIELD
+---------------
| id_persona
| id_tipo_persona
| dni_p
| apellido_p
| nombre_p
cursos
+-----------
| FIELD
+-----------
| id_curso
| nombre_c
personas_cursos
+----------
| FIELD
+------------
| id_persona
| id_curso
| año
+---------
lo que yo quiero consultar son aquellas personas que no esten en personas_cursos en un año determinado osea algo asi
Código SQL:
Ver originalSELECT p.id_persona, nombre_p,apellido_p
FROM persoas p
LEFT JOIN personas_cursos cp ON p.id_persona=cp.id_persona
WHERE id_tipo_persona= $tp
&& fecha=2014
&& cp.id_persona IS NULL
ORDER BY apellido_p,nombre_p ASC
con esta consulta no me trae nada, pero si le quito la sentencia && fecha=2014, me trae a las personas que no estan en ningun curso, pero aqui el problema porque una persona puede estar varias veces en un curso pero en años diferentes.
desde ya gracias y saludos