Cómo utilizar combinación cruzada, únete natural, y la condición se unen en sql
SQL es compatible con varios tipos de combinaciones. Lo mejor que uno para elegir en una situación dada depende del resultado que estamos tratando de lograr. Aquí están algunos detalles para ayudarle a elegir cuál usted necesita.
Cruz se unen
CROSS JOIN es la palabra clave para la básica se unen sin DÓNDE cláusula. Por Consiguiente
SELECT * FROM EMPLOYEE, COMPENSACIÓN -
también puede ser escrito como
SELECT * FROM EMPLOYEE CROSS JOIN COMPENSACIÓN -
El resultado es el producto cartesiano (también llamado el producto vectorial) De las dos tablas de origen. CROSS JOIN rara vez se le da el resultado final que desea, pero puede ser útil como el primer paso en una cadena de operaciones de manipulación de datos que finalmente producen el resultado deseado.
Unirse Natural
los naturales unirse es un caso especial de un equi-join. en el DÓNDE cláusula de un equi-join, una columna de una tabla de origen se compara con una columna de una segunda tabla de origen para la igualdad. Las dos columnas deben ser del mismo tipo y la longitud, deben tener el mismo nombre.
De hecho, en unirse a una natural, todas las columnas de una tabla que tienen los mismos nombres, tipos y longitudes como columnas correspondientes en la segunda tabla se comparan por la igualdad.
Imagina que la tabla de compensación por parte del ejemplo anterior tiene columnas EmpID, Salario, y Bono Más bien que Emplear, Salario, y Bono. En ese caso, puede realizar unen a un natural de la tabla de compensación con la tabla EMPLOYEE. Lo tradicional ÚNETE la sintaxis sería así:
SELECT E. *, C.Salary, C.BonusFROM EMPLEADO E INDEMNIZACIÓN CWHERE E.EmpID = C.EmpID -
Esta consulta es un caso especial de un natural de unirse. los SELECT Declaración volverá unió filas donde E.EmpID = C.EmpID. Considera lo siguiente:
SELECT E. *, C.Salary, C.BonusFROM EMPLEADO E NATURAL JOIN COMPENSACIÓN C -
Esta consulta se unirá a las filas donde E.EmpID = C.EmpID, dónde E.salary = C.Salary, y donde E.Bonus = C.Bonus. La tabla de resultados contendrá sólo las filas donde todas columnas correspondientes coinciden. En este ejemplo, los resultados de ambas consultas serán las mismas porque la tabla empleado no contiene ya sea una Salario o una Bono columna.
Condición unirse
LA condición unirse es como un equi-join, excepto la condición está probando no tiene que ser una igualdad (aunque puede ser). Puede ser cualquier predicado bien formada. Si la condición se cumple, entonces la fila correspondiente se convierte en parte de la tabla de resultados. La sintaxis es un poco diferente de lo que has visto hasta ahora: La condición está contenida en un EN cláusula en lugar de en una DÓNDE cláusula.
Digamos que un estadístico de béisbol quiere saber que lanzadores de la Liga Nacional han lanzado el mismo número de juegos completos como uno o más lanzadores de la Liga Americana. Esta pregunta es un trabajo para un equi-join, que también puede expresarse con la sintaxis condición-join:
SELECT * FROM NACIONAL ÚNETE AMERICANON NATIONAL.CompleteGames = AMERICAN.CompleteGames -