Mira, el problema de la consulta, o de lo que quieres mostrar, no es lo más importante ni lo más complejo.
Eso se resuelve simplemente con un INNER JOIN:
Pero el hecho de que no puedas crear las FK nos sugiere que hay un problema estructural en las tablas que lo impide. Tienes que resolver primero eso, y sólo podremos tener una idea clara de lo que pasa cuando nos des los datos que te pedimos:
1) CREATE TABLE de cada tabla implicada.
2) Cómo creó (sintaxis completa) el front-end que usas el ALTER TABLE para generar la FK.
Eso sólo para empezar.
Te explico anticipadamente un detalle: dos campos A y B pertenecientes a tablas diferentes y relacionados, pueden llegar a contener el mismo tipo de datos y aún así no poderse relacionar como FK si:
1) El campo origen en la tabla origen no es PK o UNIQUE.
2) Son exactamente del mismo tipo de columna y longitud (numeros, fechas, cadenas.
3) Tienen el mismo CHARSET (si son de texto).
También puede suceder (no es el caso) que si tienen datos, uno de ellos no cumpla con la restricción de FK, o bien que se intente crear una constraint con un nombre que ya existe en otro objeto. En ambos casos se producirán errores y la FK no se crea.
¿Se entiende el conjunto de factores?
Poste a lo pedido y vemos.