Entonces empecemos por el principio:
Explicanos qué representan esas dos tablas, y si es posible postea la estructura de las mismas.
Es importante que sea la estructura real, por lo que te aconsejo que uses
donde nombreDeTabla es el nombre de cada tabla que estás usando, y luego copies y postees acá el resultado de eso.
Si estás utilizando phpMyAdmin es posible que no se vea el contenido completo, por lo que deberás hacer que la visualización amplíe el resultado. El botón para eso lo verás como algo parecido a:
Con eso veremos la estructura real de lo que estás usando, para verificar si hay otros errores no evidentes en tu descripción.
PD: Programación es tema no permitido acá, por lo que no se debe postear nada que no sea SQL (reglas del foro de bases de datos). Si vemos código no SQL, simplemente lo editamos y lo eliminamos. Es una función de los moderadores, conforme las Políticas de Uso de Foros del Web.
Si quieres saber por qué, es simple: No todos los que trabajan en bases de datos programan, ni tampoco los que lo hacen lo hacen todos en PHP (yo suelo usar VB.Net y C#.Net). Y aquellos que no programan ven el código de programación como simple "basura" qu eensucia el SQL.
Además, el código de programación esconde errores en las variables, que no son accesibles en el SQL.
El 90% de las veces que hay codigo SQL embebido en código programado, los errores terminan siendo por datos erróneos de las variables, y no de SQL.