***Welcome to ashrafedu.blogspot.com * * * This website is maintained by ASHRAF***

Posts

    Tuesday 17 December 2019

    Joins


    Joins

    The SQL Joins clause is used to combine records from two or more tables in a database. A JOIN is a means for combining fields from two tables by using values common to each.

    Consider the following two tables
    CUSTOMERS Table
    ID
    NAME
    AGE
    ADDRESS
    SALARY
    1
    Ramesh
    32
    Ahmedabad
    2000.00
    2
    Khilan
    25
    Delhi
    1500.00
    3
    kaushik
    23
    Kota
    2000.00
    4
    Chaitali
    25
    Mumbai
    6500.00
    5
    Hardik
    27
    Bhopal
    8500.00
    6
    Komal
    22
    MP
    4500.00
    7
    Muffy
    24
    Indore
    10000.00
    ORDERS Table
    OID
    DATE
    CUSTOMER_ID
    AMOUNT
    102
    2009-10-08 00:00:00
    3
    3000
    100
    2009-10-08 00:00:00
    3
    1500
    101
    2009-11-20 00:00:00
    2
    1560
    103
    2008-05-20 00:00:00
    4
    2060

    Join these two tables in our SELECT statement as shown below.

    SELECT ID, NAME, AGE, AMOUNT
       FROM CUSTOMERS, ORDERS
       WHERE  CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

    Output:

    ID
     NAME    
     AGE
     AMOUNT
      3
     kaushik 
      23
       3000
      3
     kaushik 
      23
       1500
      2
     Khilan  
      25
       1560
      4
     Chaitali
      25
       2060

    Basic SQL Join Types
    There are four basic types of SQL joins: inner, left, right, and full. 

    Inner Join

    The most important and frequently used of the joins is the INNER JOIN. They are also referred to as an EQUIJOIN. The INNER JOIN creates a new result table by combining column values of two tables (table A and table B) based upon the join-predicate. The query compares each row of table A with each row of table B to find all pairs of rows which satisfy the join-predicate. When the join-predicate is satisfied, column values for each matched pair of rows of A and B are combined into a result row.

    The basic syntax of the INNER JOIN is as follows.
    SELECT table1.column1, table2.column2...
    FROM table1
    INNER JOIN table2
    ON table1.common_field = table2.common_field;

    Example:
    SELECT  ID, NAME, AMOUNT, DATE
       FROM CUSTOMERS
       INNER JOIN ORDERS
       ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

    Output:
    ID
     NAME    
     AMOUNT
     DATE               
      3
     kaushik 
       3000
     2009-10-08 00:00:00
      3
     kaushik 
       1500
     2009-10-08 00:00:00
      2
     Khilan  
       1560
     2009-11-20 00:00:00
      4
     Chaitali
       2060
     2008-05-20 00:00:00

    Left Join

    The SQL LEFT JOIN returns all rows from the left table, even if there are no matches in the right table. This means that a left join returns all the values from the left table, plus matched values from the right table or NULL in case of no matching join predicate.

    The basic syntax of a LEFT JOIN is as follows.

    SELECT table1.column1, table2.column2...
    FROM table1
    LEFT JOIN table2
    ON table1.common_field = table2.common_field;

    Example:
    SELECT  ID, NAME, AMOUNT, DATE  FROM CUSTOMERS
       LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

    Output:
    ID
     NAME    
     AMOUNT
     DATE               
      1
     Ramesh  
       NULL
     NULL               
      2
     Khilan  
       1560
     2009-11-20 00:00:00
      3
     kaushik 
       3000
     2009-10-08 00:00:00
      3
     kaushik 
       1500
     2009-10-08 00:00:00
      4
     Chaitali
       2060
     2008-05-20 00:00:00
      5
     Hardik  
       NULL
     NULL               
      6
     Komal   
       NULL
     NULL               
      7
     Muffy   
       NULL
     NULL               

    Right Join

    The SQL RIGHT JOIN returns all rows from the right table, even if there are no matches in the left table. This means that a right join returns all the values from the right table, plus matched values from the left table or NULL in case of no matching join predicate.

    The basic syntax of a RIGHT JOIN is as follow.

    SELECT table1.column1, table2.column2...
    FROM table1
    RIGHT JOIN table2
    ON table1.common_field = table2.common_field;

    Example:
    SELECT  ID, NAME, AMOUNT, DATE
       FROM CUSTOMERS
       RIGHT JOIN ORDERS
       ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

    Output:
    ID
    NAME
    AMOUNT
    DATE
    3
    kaushik
    3000
    2009-10-08 00:00:00
    3
    kaushik
    1500
    2009-10-08 00:00:00
    2
    Khilan
    1560
    2009-11-20 00:00:00
    4
    Chaitali
    2060
    2008-05-20 00:00:00

    Full Join

    The SQL FULL JOIN combines the results of both left and right outer joins. The joined table will contain all records from both the tables and fill in NULLs for missing matches on either side.

    The basic syntax of a FULL JOIN is as follows
    SELECT table1.column1, table2.column2...
    FROM table1
    FULL JOIN table2
    ON table1.common_field = table2.common_field;

    Example:
    SELECT  ID, NAME, AMOUNT, DATE
       FROM CUSTOMERS
       FULL JOIN ORDERS
       ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

    Output:
    ID  
     NAME    
     AMOUNT
     DATE               
        1
     Ramesh  
       NULL
     NULL               
        2
     Khilan  
       1560
     2009-11-20 00:00:00
        3
     kaushik 
       3000
     2009-10-08 00:00:00
        3
     kaushik 
       1500
     2009-10-08 00:00:00
        4
     Chaitali
       2060
     2008-05-20 00:00:00
        5
     Hardik  
       NULL
     NULL               
        6
     Komal   
       NULL
     NULL               
        7
     Muffy   
       NULL
     NULL               
        3
     kaushik 
       3000
     2009-10-08 00:00:00
        3
     kaushik 
       1500
     2009-10-08 00:00:00
        2
     Khilan  
       1560
     2009-11-20 00:00:00
        4
     Chaitali
       2060
     2008-05-20 00:00:00

    No comments:

    Post a Comment