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
)


