Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/08/2016, 15:23
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: INNER JOIN con CASE ?

Hola german_1441:

Lo que quieres hacer, lamentablemente no se puede... Sin embargo hay otras técnicas que te pueden "ayudar" a hacer una consulta como lo que pretendes.

Si entendí correctamente, el campo u.TipoUsuario puede estar asociado a la tabla Administrador y/o a la tabla Director.

Podrías cambiar tus INNER JOIN's por LEFT JOIN's, si el campo NO TIENE RELACIÓN CON LA TABLA entonces regresa un valor NULL, de tal suerte que en el SELECT simplemente pones una condición IFNULL para mostrar sólo el que tenga valor, sería algo así;

Código MySQL:
Ver original
  1.    u.Id,
  2.    u.Usuario,
  3.    u.Password,
  4.    u.TipoUsuario,
  5.    IFNULL(a.Nombre, d.Nombre) nombre
  6.    usuario as u
  7. LEFT JOIN administrador A on u.Id = a.IdUsuario
  8. LEFT JOIN director as d on u.Id = d.IdUsuario

El único detalle puede estar en si el ID está en AMBAS TABLAS... en este caso siempre mostrará el valor de la tabla A, pero puedes agregar otra condición si es que quieres hacer algo distinto en este caso.

Haz la prueba y nos comentas.

Saludos
Leo.