Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/10/2014, 12:49
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta Mysql

Para el tipo de consulta que quieres, no puedes usar JOIN implícitos (la coma), sino que debes hacerlos explícitos invocando dos veces la misma tabla pero con alias....
Es decir, no es una consulta muy simple.
Pero además, me da la impresión de que tu tabla relacional tiene un error de diseño...
Si para cada Ticket existe un Autor y un UsuarioAsignado, ambos deben estar en el mismo registro, en campos separados, y apuntando a la tabla de Usuarios.

En principio, lo que quieres tal vez se resuelva así:
Código MySQL:
Ver original
  1.     T.id id,
  2.     U1.firstname name,
  3.     IF(TU.TYPE = 1, U1.realname, '') tipo1,
  4.     IF(TU.TYPE = 1, U2.realname, '') tipo2
  5. FROM glpi_tickets T
  6.     INNER JOIN `glpi_tickets_users` TU  ON T.id = TU.`tickets_id`
  7.     INNER JOIN glpi_users U1 ON TU.`users_id` = U1.id AND TU.TYPE = 1
  8.     INNER JOIN glpi_users U2 ON TU.`users_id` = U2.id AND TU.TYPE = 2
pero para que funcionen de una manera simple, las tablas deberían ser:
Cita:
Tickets(IDTicket)
Ticket_usuario(IdTicket, IdAutor, IdUsuarioAsignado)
usuario(idUsurio, Nombre, ...)
Con eso la query sería:
Código MySQL:
Ver original
  1.     T.id id,
  2.     U1.firstname name,
  3.     U1.realname tipo1,
  4.     U2.realname tipo2
  5. FROM glpi_tickets T
  6.     INNER JOIN `glpi_tickets_users` TU  ON T.id = TU.`IdTicket`
  7.     INNER JOIN glpi_users U1 ON TU.`IdAutor` = U1.id
  8.     INNER JOIN glpi_users U2 ON TU.`idusuarioAsignado` = U2.id
Mas simple, ¿no?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)