Si usted tiene una "red" que desea llenar por completo, como el tamaño y el color de información para un artículo particular de ropa:
select
size,
color
from
sizes CROSS JOIN colors
Tal vez usted quiere una tabla que contiene una fila por cada minuto en el día, y desea utilizarlo para verificar que un procedimiento se ha ejecutado cada minuto, por lo que podría cruzar tres tablas:
select
hour,
minute
from
hours CROSS JOIN minutes
o si tiene un conjunto de especificaciones de informe estándar que desea aplicar a todos los meses en el año:
select
specId,
month
from
reports CROSS JOIN months
El problema con el mantenimiento de estas vistas es que, en la mayoría de los casos, no se desea un producto completo, especialmente con respecto a la ropa. Puede agregar la lógica MINUS
a la consulta para eliminar ciertas combinaciones que no lleva, pero le puede resultar más fácil rellenar una tabla de otra manera y no usar un producto cartesiano.
Además, es posible que termine probando la combinación cruzada en tablas que tal vez tengan unas cuantas filas más de lo que pensaba, o tal vez su cláusula WHERE
ha desaparecido parcial o completamente. En ese caso, su DBA le notificará de inmediato sobre la omisión. Por lo general, él o ella no serán felices.
Es muy triste que esta pregunta se haya cerrado. Creo que podría marcarse Community Wiki, pero decir que no es constructivo es injusto. –
Estoy de acuerdo. Esto respondió la pregunta exacta que tuve. – Hades
Hay ocasiones en que un desarrollador más nuevo tiene problemas para comprender las implicaciones de ciertas funciones del software que está utilizando. Las preguntas como esta son particularmente útiles para los nuevos desarrolladores, principalmente porque la discusión que sigue ilumina muchas posibilidades que el desarrollador junior nunca consideró. El formato de la pregunta es elemental, en el mejor de los casos, pero la intención parece ser honesta en el sentido de que pregunta "¿por qué existe esto?" Estoy de acuerdo con Wayne Koorts, es una pena que CasperOne eligió cerrar esto y lo llamó "no constructivo". La parte "no constructiva" particularmente me irrita. – Kaorie