SQL | Unirse (unión cartesiana y autounión)

SQL| JOIN (Inner, Left, Right y Full Joins)
En este artículo, discutiremos sobre los dos JOINS restantes:

  • UNIÓN CARTESIANA
  • UNIRSE AUTOMÁTICAMENTE

Considere las dos tablas a continuación:
mesa

EstudianteCurso

mesa5

    1. JOIN CARTESIAN : El JOIN CARTESIAN también se conoce como JOIN CRUZADO. En una UNIÓN CARTESIANA hay una unión para cada fila de una tabla con cada fila de otra tabla. Esto suele ocurrir cuando no se especifica la columna coincidente o la condición DONDE.
      • En ausencia de una condición WHERE, la UNIÓN CARTESIANA se comportará como un PRODUCTO CARTESIANO. es decir, el número de filas en el conjunto de resultados es el producto del número de filas de las dos tablas.
      • En presencia de la condición WHERE, esta UNIÓN funcionará como una UNIÓN INTERNA.
      • En términos generales, la unión cruzada es similar a una unión interna en la que la condición de unión siempre se evaluará como verdadera.

      Sintaxis:

      SELECT table1.column1 , table1.column2, table2.column1...
      FROM table1
      CROSS JOIN table2;
      
      
      table1: First table.
      table2: Second table
      

Consultas de ejemplo (UNIÓN CARTESIANA):

  • En la siguiente consulta, seleccionaremos NOMBRE y Edad de la tabla Student y COURSE_ID de la tabla StudentCourse. En el resultado, puede ver que cada fila de la tabla Student se une con cada fila de la tabla StudentCourse. El total de filas en el conjunto de resultados = 4 * 4 = 16.
    SELECT Student.NAME, Student.AGE, StudentCourse.COURSE_ID
    FROM Student
    CROSS JOIN StudentCourse;
    

    Salida :
    mesa_final

  1. SELF JOIN : como su nombre lo indica, en SELF JOIN una tabla se une a sí misma. Es decir, cada fila de la tabla se une consigo misma y con todas las demás filas según algunas condiciones. En otras palabras podemos decir que es una unión entre dos copias de la misma tabla. Sintaxis:
    SELECT a.coulmn1 , b.column2
    FROM table_name a, table_name b
    WHERE some_condition;
    
    table_name: Name of the table.
    some_condition: Condition for selecting the rows.
    

    Consultas de ejemplo (AUTO UNIRSE):

    SELECT a.ROLL_NO , b.NAME
    FROM Student a, Student b
    WHERE a.ROLL_NO < b.ROLL_NO;
    

    Producción:
    mesa

Este artículo es una contribución de Harsh Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *