Veamos, ¿ya has ejecutado directamente la misma consulta en tu base de datos y funciona como esperas?
A nivel de PHP una consulta de SQL es sólo una cadena de texto: no tiene valor, que claro, a menos que le pases valores tendrá otro significado.
Pero al final es una cadena de texto, puedes tomar ese SQL y ejecutarlo a mano.
Si funciona, entonces integrarlo en código PHP será fácil.
El problema no radica en el código PHP.
¿Me entiendes?
Cita: no es una consulta propia de sql que se realice directamente en la bbdd.
Pues no, pero si haces lo anterior descartarás cualquier problema con SQL directamente.