Sub query with table join : Subquery Basics « Subquery « Oracle PL / SQL

Home
Oracle PL / SQL
1.Aggregate Functions
2.Analytical Functions
3.Char Functions
4.Constraints
5.Conversion Functions
6.Cursor
7.Data Type
8.Date Timezone
9.Hierarchical Query
10.Index
11.Insert Delete Update
12.Large Objects
13.Numeric Math Functions
14.Object Oriented Database
15.PL SQL
16.Regular Expressions
17.Report Column Page
18.Result Set
19.Select Query
20.Sequence
21.SQL Plus
22.Stored Procedure Function
23.Subquery
24.System Packages
25.System Tables Views
26.Table
27.Table Joins
28.Trigger
29.User Previliege
30.View
31.XML
Oracle PL / SQL » Subquery » Subquery Basics 
Sub query with table join
    


SQL>
SQL> -- create demo table
SQL> create table Employee(
  2    empno              Number(3)  NOT NULL, -- Employee ID
  3    ename              VARCHAR2(10 BYTE),   -- Employee Name
  4    hireDate          DATE,                -- Date Employee Hired
  5    orig_salary        Number(8,2),         -- Orignal Salary
  6    curr_salary        Number(8,2),         -- Current Salary
  7    region             VARCHAR2(BYTE)     -- Region where employeed
  8  )
  9  /

Table created.

SQL>
SQL> create table job(
  2    empno              Number(3)  NOT NULL, -- Employee ID
  3    jobtitle           VARCHAR2(10 BYTE)    -- Employee job title
  4  )
  5  /

Table created.

SQL> -- prepare data for employee table
SQL> insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)
  2                values(122,'Alison',to_date('19960321','YYYYMMDD'), 45000,       48000,       'E')
  3  /

row created.

SQL> insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)
  2                values(123'James',to_date('19781212','YYYYMMDD'), 23000,       32000,       'W')
  3  /

row created.

SQL> insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)
  2                values(104,'Celia',to_date('19821024','YYYYMMDD'), 53000,       58000,        'E')
  3  /

row created.

SQL> insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)
  2                values(105,'Robert',to_date('19840115','YYYYMMDD'), 31000,      36000,        'W')
  3  /

row created.

SQL> insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)
  2                values(116,'Linda', to_date('19870730','YYYYMMDD'), 43000,       53000,       'E')
  3  /

row created.

SQL> insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)
  2                values(117,'David', to_date('19901231','YYYYMMDD'), 78000,       85000,       'W')
  3  /

row created.

SQL> insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)
  2                values(108,'Jode',  to_date('19960917','YYYYMMDD'), 21000,       29000,       'E')
  3  /

row created.

SQL>
SQL> -- prepare data for job table
SQL>
SQL> insert into job(empno, jobtitle)
  2           values(101,   'Painter');

row created.

SQL>
SQL> insert into job(empno, jobtitle)
  2           values(122,   'Tester');

row created.

SQL>
SQL> insert into job(empno, jobtitle)
  2           values(123,   'Dediator');

row created.

SQL>
SQL> insert into job(empno, jobtitle)
  2           values(104,   'Chemist');

row created.

SQL>
SQL> insert into job(empno, jobtitle)
  2           values(105,   'Accountant');

row created.

SQL>
SQL> insert into job(empno, jobtitle)
  2           values(116,   'Manager');

row created.

SQL>
SQL> insert into job(empno, jobtitle)
  2           values(117,   'Programmer');

row created.

SQL>
SQL> insert into job(empno, jobtitle)
  2           values(108,   'Developer');

row created.

SQL>
SQL>
SQL> -- display data in the table
SQL> select from Employee
  2  /

     EMPNO ENAME      HIREDATE    ORIG_SALARY CURR_SALARY R
---------- ---------- ----------- ----------- ----------- -
       122 Alison     1996-MAR-21       45000       48000 E
       123 James      1978-DEC-12       23000       32000 W
       104 Celia      1982-OCT-24       53000       58000 E
       105 Robert     1984-JAN-15       31000       36000 W
       116 Linda      1987-JUL-30       43000       53000 E
       117 David      1990-DEC-31       78000       85000 W
       108 Jode       1996-SEP-17       21000       29000 E

rows selected.

SQL>
SQL> select from job;

     EMPNO JOBTITLE
---------- ----------
       101 Painter
       122 Tester
       123 Dediator
       104 Chemist
       105 Accountant
       116 Manager
       117 Programmer
       108 Developer

rows selected.

SQL>
SQL>
SQL>
SQL>
SQL> SELECT e.empno, ename, j.jobtitle
  2  FROM employee e,
  3    (SELECT empno, jobtitle
  4     FROM jobj
  5  WHERE e.empno = j.empno;

     EMPNO ENAME      JOBTITLE
---------- ---------- ----------
       122 Alison     Tester
       123 James      Dediator
       104 Celia      Chemist
       105 Robert     Accountant
       116 Linda      Manager
       117 David      Programmer
       108 Jode       Developer

rows selected.

SQL>
SQL> drop table job;

Table dropped.

SQL>
SQL> -- clean the table
SQL> drop table Employee
  2  /

Table dropped.

SQL>
SQL>
           
         
    
    
    
  
Related examples in the same category
1.Use sub query as a virtual table
2.Compare with data from subquery
3.An example of a nested three-level subquery
4.If an inner query returns a NULL, the outer query also returns NULL
5.Working with multi-column subqueries
6.Use aggregate function in sub query
7.Sub query: 'SELECT 1 FROM dept d'
8.Using the EXISTS and NOT EXISTS operators
9.Writing Single Row Subqueries
10.Compare with the sub query result
11.Subqueries in a HAVING Clause: Uses a subquery in the HAVING clause of the outer query
12.Subqueries in a FROM Clause (Inline Views)
13.Single Row Subqueries May Return a Maximum of One Row
14.Subqueries May Not Contain an ORDER BY Clause
15.Writing Multiple Column Subqueries with table join
16.Subquery just returns a literal value: improve performance of your query
17.EXISTS typically offers better performance than IN with subqueries
18.NVL() is used to convert null in correlated query
19.Writing Nested Subqueries
20.subqueries in the SELECT column list (New Way)
21.subqueries in the SELECT column list (Old way)
22.Not equals and subquery
23.Greater than average salary
24.Greater than max(salary)
25.Larger than value from subquery
26.Subquery in select statement
27.Subquery in where clause
28.Subqueries That Return Multiple Results
29.Subqueries in the WHERE Clause: equals
30.Subqueries in the WHERE Clause: less than
31.Simple Subqueries in select statement
32.Single-row subqueries return only one row of result.
33.The parent query of a single-row subquery can return more than one row.
34.Born after employee 4 was born
35.inline view: What percentage of these items exist in each bin selected
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.