Bien un nuevo problema que me esta llevando por la calle de la amargura.
Hay 3 tablas, cuya estructura es la siguiente:
nivel1:
email
Pass
DNI
nivel2:
email
Pass
CIF
nivel3:
email
Pass
CIF
El usuario introduce mediante un formulario los parámetros email y (DNI ó CIF), si estos son correctos se le debe devolver el Pass. Obviamente cuando un usuario introduce un email no sabemos a cual de las tres tablas puede corresponder, si es que existe en alguna de ellas, aunque tampoco nos importa saber en cual encuentra coincidencia, solo nos importa el hecho en si de que coincida o no y cual es el valor del campo Pass. Utilizando lo que creía haber aprendido en este post pretendía usar esta consulta:
Código php:
Ver originalSELECT if( (
SELECT Pass
FROM nivel1
AND DNI = '28823418z'
) =NULL, if( (
SELECT Pass
FROM nivel2
WHERE Email = '525225'
AND CIF = '252525'
) = NULL, if( (
SELECT Pass
FROM nivel3
WHERE Email = '525252'
AND CIF = '25252'
) <> NULL, Pass, 'los datos introducidos no son correctos' ) , Pass ) , Pass ) AS password
Para aclarar: Se supone que donde pone Pass la sentencia condicional SQL debería devolver el valor de la Pass si encuentra coincidencia de datos en esa tabla que esta mirando, con lo que el resultado de la consulta sería una tabla con cabecero: "Password" y el valor del mismo sería el valor de Pass o bien "los datos introducidos no son correctos'. Pero da error, obviamente porque la sintaxis que estoy utilizando seguramente no es la correcta o quizás porque el planteamiento de la solución no es el adecuado.