Ver Mensaje Individual
  #22 (permalink)  
Antiguo 20/04/2009, 09:10
Avatar de Dude--
Dude--
 
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Busqueda en 3 tablas no relacionadas

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 original
  1. SELECT if( (
  2. SELECT Pass
  3. FROM nivel1
  4. WHERE Email = '[email protected]'
  5. AND DNI = '28823418z'
  6. ) =NULL, if( (
  7. SELECT Pass
  8. FROM nivel2
  9. WHERE Email = '525225'
  10. AND CIF = '252525'
  11. ) = NULL, if( (
  12. SELECT Pass
  13. FROM nivel3
  14. WHERE Email = '525252'
  15. AND CIF = '25252'
  16. ) <> 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.
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."