1. Get rid of all advertisements and get unlimited access to documents by upgrading to Premium Membership. Upgrade to Premium Now and also get a Premium Badge!

What is difference between inner join and normal join query.......!!!!

Discussion in 'SQL PL/SQL' started by ankit.mca.aaidu, Oct 1, 2013.

  1. ankit.mca.aaidu

    ankit.mca.aaidu Active Member

    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    55
    Location:
    Pune
    Code (Text):

    select * from orders  inner join part ON orders.partnum= part.partnum
     
    HTML:

    ORDERDON    NAME    PARTNUM QUANTITY    REMARKS PARTNUM DESCRIPTION PRICE
    15-MAY-96   TRUE WHEEL  23  6   PAID    23  MOUNTAIN    350.45
    19-MAY-96   TRUE WHEEL  76  3   PAID    76  ROAD BIKE   530.00
    02-SEP-96   TRUE WHEEL  10  1   PAID    10  TANDEM  1200.00
    30-JUN-96   TRUE WHEEL  42  8   PAID    42  SEATS   24.50
    30-JUN-96   BIKE SPEC      54   10  PAID    54       PEDALS         54.24
    30-MAY-96   BIKE SPEC   10  2   PAID    10      TANDEM         1200.00
    30-MAY-96   BIKE SPEC   23  8   PAID    23   MOUNTAIN          350.45
    17-JAN-96   BIKE SPEC   76  11  PAID    76   ROAD BIKE         530.00
    17-JAN-96   LE SHOPPE   76  5   PAID    76  ROAD BIKE          530.00
    01-JUN-96   LE SHOPPE   10  3   PAID    10  TANDEM         1200.00
    01-JUN-96   AAA BIKE    10  1   PAID    10  TANDEM         1200.00
    01-JUL-96   AAA BIKE    76  4   PAID    76  ROAD BIKE          530.00
    01-JUL-96   AAA BIKE    46  14  PAID    46  TIRES                  15.25
    11-JUL-96   JACKS BIKE  76  14  PAID    76  ROAD BIKE          530.00
     
    Code (Text):

    select * from part p , orders o where o.partnum = p.partnum
     
    HTML:

    PARTNUM DESCRIPTION  PRICE  ORDERDON    NAME    PARTNUM QUANTITY    REMARKS
    23  MOUNTAIN    350.45  15-MAY-96   TRUE WHEEL  23  6   PAID
    76  ROAD BIKE   530.00  19-MAY-96   TRUE WHEEL  76  3   PAID
    10  TANDEM  1200.00 02-SEP-96   TRUE WHEEL  10  1   PAID
    42  SEATS   24.50            30-JUN-96  TRUE WHEEL  42  8   PAID
    54  PEDALS  54.24            30-JUN-96  BIKE SPEC           54  10  PAID
    10  TANDEM  1200.00 30-MAY-96   BIKE SPEC           10  2   PAID
    23  MOUNTAIN    350.45  30-MAY-96   BIKE SPEC           23  8   PAID
    76  ROAD BIKE   530.00  17-JAN-96   BIKE SPEC           76  11  PAID
    76  ROAD BIKE   530.00  17-JAN-96   LE SHOPPE           76  5   PAID
    10  TANDEM  1200.00 01-JUN-96   LE SHOPPE           10  3   PAID
    10  TANDEM  1200.00 01-JUN-96   AAA BIKE            10  1   PAID
    76  ROAD BIKE   530.00  01-JUL-96   AAA BIKE            76  4   PAID
    46  TIRES           15.25         01-JUL-96 AAA BIKE            46  14  PAID
    76  ROAD BIKE   530.00  11-JUL-96   JACKS BIKE  76  14  PAID
     
     
  2. zargon

    zargon Community Moderator Forum Guru

    Messages:
    2,351
    Likes Received:
    348
    Trophy Points:
    1,430
    Location:
    Aurora, CO
    JOIN == INNER JOIN, the difference is in the syntax model. Here are examples of outer and inner joins in Oracle, using old Oracle syntax and the ANSI syntax:

    Code (SQL):
    SQL>
    SQL> --
    SQL> -- Non-ANSI inner join
    SQL> --
    SQL> SELECT NULL
      2  FROM emp e, dept d
      3  WHERE e.deptno = d.deptno;
     
    N
    -
     
     
     
     
     

     
    N
    -
     

     
    14 ROWS selected.
     
    SQL>
    SQL> --
    SQL> -- ANSI inner joins
    SQL> --
    SQL> SELECT NULL
      2  FROM emp JOIN dept ON (emp.deptno = dept.deptno);
     
    N
    -
     
     
     
     
     

     
    N
    -
     

     
    14 ROWS selected.
     
    SQL>
    SQL> SELECT NULL
      2  FROM emp INNER JOIN dept ON (emp.deptno = dept.deptno);
     
    N
    -
     
     
     
     
     

     
    N
    -
     

     
    14 ROWS selected.
     
    SQL>
    SQL> --
    SQL> -- Outer join, non-ANSI
    SQL> --
    SQL> SELECT e.empno, e.ename, d.deptno
      2  FROM emp e, dept d WHERE d.deptno = e.deptno(+);
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7369 SMITH              20
          7499 ALLEN              30
          7521 WARD               30
          7566 JONES              20
          7654 MARTIN             30
          7698 BLAKE              30
          7782 CLARK              10
          7788 SCOTT              20
          7839 KING               10
          7844 TURNER             30
          7876 ADAMS              20
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7900 JAMES              30
          7902 FORD               20
          7934 MILLER             10
                                  40
     
    15 ROWS selected.
     
    SQL>
    SQL> --
    SQL> -- Outer join, ANSI
    SQL> --
    SQL> SELECT e.empno, e.ename, d.deptno
      2  FROM emp e LEFT OUTER JOIN dept d ON (d.deptno = e.deptno);
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7934 MILLER             10
          7839 KING               10
          7782 CLARK              10
          7902 FORD               20
          7876 ADAMS              20
          7788 SCOTT              20
          7566 JONES              20
          7369 SMITH              20
          7900 JAMES              30
          7844 TURNER             30
          7698 BLAKE              30
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7654 MARTIN             30
          7521 WARD               30
          7499 ALLEN              30
     
    14 ROWS selected.
     
    SQL>
    SQL> SELECT e.empno, e.ename, d.deptno
      2  FROM emp e RIGHT OUTER JOIN dept d ON (d.deptno = e.deptno);
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7369 SMITH              20
          7499 ALLEN              30
          7521 WARD               30
          7566 JONES              20
          7654 MARTIN             30
          7698 BLAKE              30
          7782 CLARK              10
          7788 SCOTT              20
          7839 KING               10
          7844 TURNER             30
          7876 ADAMS              20
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7900 JAMES              30
          7902 FORD               20
          7934 MILLER             10
                                  40
     
    15 ROWS selected.
     
    SQL>
    SQL> SELECT e.empno, e.ename, d.deptno
      2  FROM emp e FULL OUTER JOIN dept d ON (d.deptno = e.deptno);
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7369 SMITH              20
          7499 ALLEN              30
          7521 WARD               30
          7566 JONES              20
          7654 MARTIN             30
          7698 BLAKE              30
          7782 CLARK              10
          7788 SCOTT              20
          7839 KING               10
          7844 TURNER             30
          7876 ADAMS              20
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7900 JAMES              30
          7902 FORD               20
          7934 MILLER             10
                                  40
     
    15 ROWS selected.
     
    SQL>
    Notice that the left outer join returned matched records; there were no records in the EMP table that had DEPTNO values that don't occur in the DEPT table. The RIGHT and FULL outer joins returned ALL deptno values from DEPT regardless of whether they matched a record in EMP. Notice also that the JOIN and INNER JOIN return the same results, indicating that they are the same type of join.
     
  3. zargon

    zargon Community Moderator Forum Guru

    Messages:
    2,351
    Likes Received:
    348
    Trophy Points:
    1,430
    Location:
    Aurora, CO
    There is also a CROSS JOIN which pretty much returns a cartesian join where everything in one table is 'matched' to everything in another table regardless:

    Code (SQL):
    SQL>
    SQL> --
    SQL> -- Cross join, ANSI
    SQL> --
    SQL> SELECT e.empno, e.ename, d.deptno
      2  FROM emp e CROSS JOIN dept d;
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7369 SMITH              10
          7499 ALLEN              10
          7521 WARD               10
          7566 JONES              10
          7654 MARTIN             10
          7698 BLAKE              10
          7782 CLARK              10
          7788 SCOTT              10
          7839 KING               10
          7844 TURNER             10
          7876 ADAMS              10
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7900 JAMES              10
          7902 FORD               10
          7934 MILLER             10
          7369 SMITH              20
          7499 ALLEN              20
          7521 WARD               20
          7566 JONES              20
          7654 MARTIN             20
          7698 BLAKE              20
          7782 CLARK              20
          7788 SCOTT              20
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7839 KING               20
          7844 TURNER             20
          7876 ADAMS              20
          7900 JAMES              20
          7902 FORD               20
          7934 MILLER             20
          7369 SMITH              30
          7499 ALLEN              30
          7521 WARD               30
          7566 JONES              30
          7654 MARTIN             30
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7698 BLAKE              30
          7782 CLARK              30
          7788 SCOTT              30
          7839 KING               30
          7844 TURNER             30
          7876 ADAMS              30
          7900 JAMES              30
          7902 FORD               30
          7934 MILLER             30
          7369 SMITH              40
          7499 ALLEN              40
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7521 WARD               40
          7566 JONES              40
          7654 MARTIN             40
          7698 BLAKE              40
          7782 CLARK              40
          7788 SCOTT              40
          7839 KING               40
          7844 TURNER             40
          7876 ADAMS              40
          7900 JAMES              40
          7902 FORD               40
     
         EMPNO ENAME          DEPTNO
    ---------- ---------- ----------
          7934 MILLER             40
     
    56 ROWS selected.
     
    SQL>
    This can be useful if you want to return all combinations of column values:

    Code (SQL):
    SQL> CREATE TABLE word_syn
      2  (VALUE varchar2(30),
      3   likeness varchar2(30))
      4  /
     
    TABLE created.
     
    SQL>
    SQL> INSERT ALL
      2  INTO word_syn VALUES ('red','red')
      3  INTO word_syn VALUES ('red','rouge')
      4  INTO word_syn VALUES ('red','crimson')
      5  INTO word_syn VALUES ('car','car')
      6  INTO word_syn VALUES ('car','motor')
      7  INTO word_syn VALUES ('car','vehicle')
      8  SELECT 1 FROM dual
      9  /
     
    6 ROWS created.
     
    SQL>
    SQL> /* Find options for "big red car"
    SQL>    Desired output is:
    SQL>    big rouge car
    SQL>    big rouge motor
    SQL>    big rouge vehicle
    SQL>    big red motor
    SQL>    big crimson motor... and so on.
    SQL> */

    SQL>
    SQL> SELECT a.likeness, b.likeness
      2  FROM word_syn a CROSS JOIN word_syn b
      3  WHERE b.VALUE = 'car' AND a.VALUE='red'
      4  /
     
    LIKENESS                       LIKENESS
    ------------------------------ ------------------------------
    red                            car
    red                            motor
    red                            vehicle
    rouge                          car
    rouge                          motor
    rouge                          vehicle
    crimson                        car
    crimson                        motor
    crimson                        vehicle
     
    9 ROWS selected.
     
    SQL>
    SQL> INSERT ALL
      2  INTO word_syn VALUES ('big','big')
      3  INTO word_syn VALUES ('big','huge')
      4  INTO word_syn VALUES ('big','large')
      5  INTO word_syn VALUES ('big','gigantic')
      6  INTO word_syn VALUES ('big','grand')
      7  INTO word_syn VALUES ('big','humongous')
      8  SELECT * FROM dual
      9  /
     
    6 ROWS created.
     
    SQL>
    SQL> SELECT z.likeness, alike, blike
      2  FROM (SELECT a1.likeness alike, b1.likeness blike FROM word_syn a1 CROSS JOIN word_syn b1
      3  WHERE b1.VALUE = 'car' AND a1.VALUE='red') CROSS JOIN word_syn z
      4  WHERE z.VALUE = 'big'
      5  /
     
    LIKENESS                       ALIKE                          BLIKE
    ------------------------------ ------------------------------ ------------------------------
    big                            red                            car
    huge                           red                            car
    LARGE                          red                            car
    gigantic                       red                            car
    grand                          red                            car
    humongous                      red                            car
    big                            red                            motor
    huge                           red                            motor
    LARGE                          red                            motor
    gigantic                       red                            motor
    grand                          red                            motor
     
    LIKENESS                       ALIKE                          BLIKE
    ------------------------------ ------------------------------ ------------------------------
    humongous                      red                            motor
    big                            red                            vehicle
    huge                           red                            vehicle
    LARGE                          red                            vehicle
    gigantic                       red                            vehicle
    grand                          red                            vehicle
    humongous                      red                            vehicle
    big                            rouge                          car
    huge                           rouge                          car
    LARGE                          rouge                          car
    gigantic                       rouge                          car
     
    LIKENESS                       ALIKE                          BLIKE
    ------------------------------ ------------------------------ ------------------------------
    grand                          rouge                          car
    humongous                      rouge                          car
    big                            rouge                          motor
    huge                           rouge                          motor
    LARGE                          rouge                          motor
    gigantic                       rouge                          motor
    grand                          rouge                          motor
    humongous                      rouge                          motor
    big                            rouge                          vehicle
    huge                           rouge                          vehicle
    LARGE                          rouge                          vehicle
     
    LIKENESS                       ALIKE                          BLIKE
    ------------------------------ ------------------------------ ------------------------------
    gigantic                       rouge                          vehicle
    grand                          rouge                          vehicle
    humongous                      rouge                          vehicle
    big                            crimson                        car
    huge                           crimson                        car
    LARGE                          crimson                        car
    gigantic                       crimson                        car
    grand                          crimson                        car
    humongous                      crimson                        car
    big                            crimson                        motor
    huge                           crimson                        motor
     
    LIKENESS                       ALIKE                          BLIKE
    ------------------------------ ------------------------------ ------------------------------
    LARGE                          crimson                        motor
    gigantic                       crimson                        motor
    grand                          crimson                        motor
    humongous                      crimson                        motor
    big                            crimson                        vehicle
    huge                           crimson                        vehicle
    LARGE                          crimson                        vehicle
    gigantic                       crimson                        vehicle
    grand                          crimson                        vehicle
    humongous                      crimson                        vehicle
     
    54 ROWS selected.
     
    SQL>