Código:
CREATE TABLE `it_tickets_prioridades` ( `idPrioridad` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT, `denom` VARCHAR(20) COLLATE latin1_swedish_ci NOT NULL DEFAULT '', PRIMARY KEY (`idPrioridad`) )ENGINE=InnoDB AUTO_INCREMENT=5 CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';
Código:
La idea es tener un conjunto diferente de prioridades para cada clasificación, por lo cual en la pagina donde se asignan siempre necesito la lista de prioridades y que me retorne información para las que si estan disponibles para una clasificación dada (en mis ejemplos sera la de idClasificacion = 1).CREATE TABLE `it_tickets_clasificacionprioridades` ( `idClasificacionPrioridad` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT, `idClasificacion` INTEGER(11) UNSIGNED NOT NULL, `idPrioridad` INTEGER(11) UNSIGNED NOT NULL, PRIMARY KEY (`idClasificacionPrioridad`) )ENGINE=InnoDB AUTO_INCREMENT=6 CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';
Mi solución inical fue entonces:
Código:
Pero no encontre en ningún lado que recomienden que dentro de la restricción de ON del INNER pueda poner mas condiciones que el campo que se usa como punto de unión; de forma que esta solución (que me parecio mucho mas compleja) parece ser la mas 'correcta':SELECT it_tickets_clasificacionprioridades.idClasificacionPrioridad, it_tickets_clasificacionprioridades.rev, it_tickets_prioridades.idPrioridad, it_tickets_prioridades.denom FROM it_tickets_prioridades LEFT OUTER JOIN it_tickets_clasificacionprioridades ON ( it_tickets_prioridades.idPrioridad = it_tickets_clasificacionprioridades.idPrioridad AND it_tickets_clasificacionprioridades.idClasificacion = 1 )
Código:
Les agradeceria mucho si alguien me puede ayudar a lograr que estoy interpretando mal; espero haber sido lo suficientemente claro al expresar mi duda; desde ya muchas gracias. SELECT clasifPrior.idClasificacionPrioridad, it_tickets_prioridades.idPrioridad, it_tickets_prioridades.denom FROM it_tickets_prioridades LEFT OUTER JOIN ( SELECT it_tickets_clasificacionprioridades.idPrioridad, it_tickets_clasificacionprioridades.idClasificacionPrioridad FROM it_tickets_clasificacionprioridades WHERE it_tickets_clasificacionprioridades.idClasificacion = 1 ) AS clasifPrior ON ( it_tickets_prioridades.idPrioridad = clasifPrior.idPrioridad )