Hola de nuevo.
He conseguido lo que buscaba, pero no se si de una manera un tanto rebuscada...
La consulta resultante es la siguiente:
Código SQL:
Ver originalSELECT * FROM ((SELECT a.id_atributo, a.nombre, a.columna, p.id_usuario, p.privacidad FROM atributos a LEFT JOIN privacidad p
ON a.id_atributo = p.id_atributo
WHERE a.id_atributo NOT IN (SELECT p.id_atributo FROM privacidad p WHERE p.id_usuario = 38))
UNION
(
SELECT a.id_atributo, a.nombre, a.columna, p.id_usuario, p.privacidad FROM atributos a,privacidad p WHERE p.id_usuario = 38 AND a.id_atributo = p.id_atributo
)) AS consulta
ORDER BY consulta.id_atributo
Y estos los resultados:
"id_atributo";"nombre";"columna";"id_usuario";"pri vacidad"
"1";"Nombre";"nombre";"38";"3"
"2";"Apellidos";"apellidos";"1";"3"
"3";"Fecha de Nacimiento";"fecha_nacimiento";NULL;NULL
"4";"Sexo";"sexo";NULL;NULL
"5";"Ciudad";"ciudad";NULL;NULL
Los datos que a mi me interesan son siempre los del usuario 38, como me está devolviendo datos de otro usuario, desde mi código PHP tendré que comprobar siempre si el dato que me devuelve es de ese usuario y si no hacer otra cosa.
Lo ideal hubiera sido que me devolviera los datos con una simple consulta, pero entiendo que no es posible.
Si alguien sabe como hacerlo que me lo diga, ya que esta consulta es un tanto complicada de mantener en un futuro.