Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/12/2009, 03:17
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como buscar usuario en varias tablas

Tienes que usar UNION ALL
(SELECT 'empleado' sistema, * FROM sys_employee WHERE (sys_employee.run='10000000' AND sys_employee.password=MD5('1')))
UNION ALL
(SELECT 'estudiante', * FROM sys_students WHERE (sys_students.run='10000000' AND sys_students.password=MD5('1')))
UNION ALL
(SELECT 'tutor', * FROM sys_tutors WHERE (sys_tutors.run='10000000' AND sys_tutors.password=MD5('1')))

Te diré que no me gusta la estructura y que deberías haber tenido una sola tabla con los nombres y otra con los sistemas: empleado, alumno, tutor, etc., y en caso de que alguien pueda pertenecer a más de una de esas posibilidades una tercera tabla personasistema. Si no fuera así, un campo en la tabla persona para guardar el foreign key numérico correspondiente al sistema, sería suficiente. Creo que eso sería mejor. Pero para lo que tienes podría servirte lo que te propongo.
Ah, he puesto asterisco porque entiendo que los campos son los mismos y de la misma naturaleza en las tres tablas. Si no es así, tendrás que especificar los nombres de los campos, y que sean en el mismo número y del mismo tipo.