<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FTable_Joins%2FUSING</id>
		<title>Oracle PL/SQL Tutorial/Table Joins/USING - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FTable_Joins%2FUSING"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table_Joins/USING&amp;action=history"/>
		<updated>2026-05-24T22:38:48Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table_Joins/USING&amp;diff=2741&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table_Joins/USING&amp;diff=2741&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table_Joins/USING&amp;diff=2742&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table_Joins/USING&amp;diff=2742&amp;oldid=prev"/>
				<updated>2010-05-26T10:03:46Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Join table using==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table emp&lt;br /&gt;
  2  ( empno      NUMBER(4)    constraint E_PK primary key&lt;br /&gt;
  3  , ename      VARCHAR2(8)&lt;br /&gt;
  4  , init       VARCHAR2(5)&lt;br /&gt;
  5  , job        VARCHAR2(8)&lt;br /&gt;
  6  , mgr        NUMBER(4)&lt;br /&gt;
  7  , bdate      DATE&lt;br /&gt;
  8  , sal       NUMBER(6,2)&lt;br /&gt;
  9  , comm       NUMBER(6,2)&lt;br /&gt;
 10  , deptno     NUMBER(2)    default 10&lt;br /&gt;
 11  ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(1,&amp;quot;Tom&amp;quot;,&amp;quot;N&amp;quot;,   &amp;quot;Coder&amp;quot;, 13,date &amp;quot;1965-12-17&amp;quot;,  800 , NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(2,&amp;quot;Jack&amp;quot;,&amp;quot;JAM&amp;quot;, &amp;quot;Tester&amp;quot;,6,date &amp;quot;1961-02-20&amp;quot;,  1600, 300,   30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(3,&amp;quot;Wil&amp;quot;,&amp;quot;TF&amp;quot; ,  &amp;quot;Tester&amp;quot;,6,date &amp;quot;1962-02-22&amp;quot;,  1250, 500,   30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(4,&amp;quot;Jane&amp;quot;,&amp;quot;JM&amp;quot;,  &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1967-04-02&amp;quot;,  2975, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(5,&amp;quot;Mary&amp;quot;,&amp;quot;P&amp;quot;,  &amp;quot;Tester&amp;quot;,6,date &amp;quot;1956-09-28&amp;quot;,  1250, 1400,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(6,&amp;quot;Black&amp;quot;,&amp;quot;R&amp;quot;,   &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1963-11-01&amp;quot;,  2850, NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(7,&amp;quot;Chris&amp;quot;,&amp;quot;AB&amp;quot;,  &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1965-06-09&amp;quot;,  2450, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(8,&amp;quot;Smart&amp;quot;,&amp;quot;SCJ&amp;quot;, &amp;quot;Coder&amp;quot;, 4,date &amp;quot;1959-11-26&amp;quot;,  3000, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(9,&amp;quot;Peter&amp;quot;,&amp;quot;CC&amp;quot;,   &amp;quot;Designer&amp;quot;,NULL,date &amp;quot;1952-11-17&amp;quot;,  5000, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(10,&amp;quot;Take&amp;quot;,&amp;quot;JJ&amp;quot;, &amp;quot;Tester&amp;quot;,6,date &amp;quot;1968-09-28&amp;quot;,  1500, 0,     30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(11,&amp;quot;Ana&amp;quot;,&amp;quot;AA&amp;quot;,  &amp;quot;Coder&amp;quot;, 8,date &amp;quot;1966-12-30&amp;quot;,  1100, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(12,&amp;quot;Jane&amp;quot;,&amp;quot;R&amp;quot;,   &amp;quot;Manager&amp;quot;,   6,date &amp;quot;1969-12-03&amp;quot;,  800 , NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(13,&amp;quot;Fake&amp;quot;,&amp;quot;MG&amp;quot;,   &amp;quot;Coder&amp;quot;, 4,date &amp;quot;1959-02-13&amp;quot;,  3000, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(14,&amp;quot;Mike&amp;quot;,&amp;quot;TJA&amp;quot;,&amp;quot;Manager&amp;quot;,   7,date &amp;quot;1962-01-23&amp;quot;,  1300, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; create table history&lt;br /&gt;
  2  ( empno      NUMBER(4)&lt;br /&gt;
  3  , beginyear  NUMBER(4)&lt;br /&gt;
  4  , begindate  DATE&lt;br /&gt;
  5  , enddate    DATE&lt;br /&gt;
  6  , deptno     NUMBER(2)&lt;br /&gt;
  7  , sal       NUMBER(6,2)&lt;br /&gt;
  8  , comments   VARCHAR2(60)&lt;br /&gt;
  9  , constraint H_PK         primary key(empno,begindate)&lt;br /&gt;
 10  , constraint H_BEG_END    check      (begindate &amp;lt; enddate)&lt;br /&gt;
 11  ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter session  set NLS_DATE_FORMAT=&amp;quot;DD-MM-YYYY&amp;quot;;&lt;br /&gt;
Session altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into history values (1,2000,&amp;quot;01-01-2000&amp;quot;,&amp;quot;01-02-2000&amp;quot;,40, 950,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (1,2000,&amp;quot;01-02-2000&amp;quot;, NULL       ,20, 800,&amp;quot;restarted&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (2,2009,&amp;quot;01-11-2009&amp;quot;, NULL       ,30,1600,&amp;quot;just hired&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (3,1987,&amp;quot;01-08-1987&amp;quot;,&amp;quot;01-01-1989&amp;quot;,30,1000,&amp;quot;On training&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (3,2000,&amp;quot;01-02-2000&amp;quot;, NULL       ,30,1250,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select e.ename, e.bdate&lt;br /&gt;
  2  ,      h.deptno, h.sal&lt;br /&gt;
  3  from   emp e&lt;br /&gt;
  4         join&lt;br /&gt;
  5         history h&lt;br /&gt;
  6         using (empno)&lt;br /&gt;
  7  where  e.job = &amp;quot;Manager&amp;quot;;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table history;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Simplifying Joins with the USING Keyword==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;SQL/92 allows you to further simplify the join condition through the USING clause, but only when your query has the following limitations:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Your query must use an equijoin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The columns in your equijoin have the same name.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Don&amp;quot;t use a table name or alias when referencing columns used in a USING clause.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    EMPNO         NUMBER(3),&lt;br /&gt;
  3    ENAME         VARCHAR2(15 BYTE),&lt;br /&gt;
  4    HIREDATE      DATE,&lt;br /&gt;
  5    ORIG_SALARY   NUMBER(6),&lt;br /&gt;
  6    CURR_SALARY   NUMBER(6),&lt;br /&gt;
  7    REGION        VARCHAR2(1 BYTE),&lt;br /&gt;
  8    MANAGER_ID    NUMBER(3)&lt;br /&gt;
  9  )&lt;br /&gt;
 10  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table job (&lt;br /&gt;
  2    EMPNO         NUMBER(3),&lt;br /&gt;
  3    jobtitle      VARCHAR2(20 BYTE)&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (1,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (2,&amp;quot;Accountant&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (3,&amp;quot;Developer&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (4,&amp;quot;COder&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (5,&amp;quot;Director&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (6,&amp;quot;Mediator&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (7,&amp;quot;Proffessor&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (8,&amp;quot;Programmer&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into job (EMPNO, Jobtitle) values (9,&amp;quot;Developer&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION, MANAGER_ID)&lt;br /&gt;
  2               values (1,      &amp;quot;Jason&amp;quot;, to_date(&amp;quot;19960725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1234,              8767,         &amp;quot;E&amp;quot;,    2)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION, MANAGER_ID)&lt;br /&gt;
  2               values (2,      &amp;quot;John&amp;quot;,  to_date(&amp;quot;19970715&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2341,              3456,         &amp;quot;W&amp;quot;,    3)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION, MANAGER_ID)&lt;br /&gt;
  2               values (3,      &amp;quot;Joe&amp;quot;,   to_date(&amp;quot;19860125&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 4321,              5654,         &amp;quot;E&amp;quot;,    3)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION, MANAGER_ID)&lt;br /&gt;
  2               values (4,      &amp;quot;Tom&amp;quot;,   to_date(&amp;quot;20060913&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2413,              6787,         &amp;quot;W&amp;quot;,    4)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION, MANAGER_ID)&lt;br /&gt;
  2               values (5,      &amp;quot;Jane&amp;quot;,  to_date(&amp;quot;20050417&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 7654,              4345,         &amp;quot;E&amp;quot;,    4)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION, MANAGER_ID)&lt;br /&gt;
  2               values (6,      &amp;quot;James&amp;quot;, to_date(&amp;quot;20040718&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 5679,              6546,         &amp;quot;W&amp;quot;,    5)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION, MANAGER_ID)&lt;br /&gt;
  2               values (7,      &amp;quot;Jodd&amp;quot;,  to_date(&amp;quot;20030720&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 5438,              7658,         &amp;quot;E&amp;quot;,    6)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION)&lt;br /&gt;
  2               values (8,      &amp;quot;Joke&amp;quot;,  to_date(&amp;quot;20020101&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 8765,              4543,         &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(EMPNO,  EName,   HIREDATE,                       ORIG_SALARY,       CURR_SALARY,  REGION)&lt;br /&gt;
  2               values (9,      &amp;quot;Jack&amp;quot;,  to_date(&amp;quot;20010829&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 7896,              1232,         &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
     EMPNO ENAME           HIREDATE  ORIG_SALARY CURR_SALARY R MANAGER_ID&lt;br /&gt;
---------- --------------- --------- ----------- ----------- - ----------&lt;br /&gt;
         1 Jason           25-JUL-96        1234        8767 E          2&lt;br /&gt;
         2 John            15-JUL-97        2341        3456 W          3&lt;br /&gt;
         3 Joe             25-JAN-86        4321        5654 E          3&lt;br /&gt;
         4 Tom             13-SEP-06        2413        6787 W          4&lt;br /&gt;
         5 Jane            17-APR-05        7654        4345 E          4&lt;br /&gt;
         6 James           18-JUL-04        5679        6546 W          5&lt;br /&gt;
         7 Jodd            20-JUL-03        5438        7658 E          6&lt;br /&gt;
         8 Joke            01-JAN-02        8765        4543 W&lt;br /&gt;
         9 Jack            29-AUG-01        7896        1232 E&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt; select * from job&lt;br /&gt;
  2  /&lt;br /&gt;
     EMPNO JOBTITLE&lt;br /&gt;
---------- --------------------&lt;br /&gt;
         1 Tester&lt;br /&gt;
         2 Accountant&lt;br /&gt;
         3 Developer&lt;br /&gt;
         4 COder&lt;br /&gt;
         5 Director&lt;br /&gt;
         6 Mediator&lt;br /&gt;
         7 Proffessor&lt;br /&gt;
         8 Programmer&lt;br /&gt;
         9 Developer&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT e.ename, j.jobtitle FROM employee e INNER JOIN job j USING (empno);&lt;br /&gt;
ENAME           JOBTITLE&lt;br /&gt;
--------------- --------------------&lt;br /&gt;
Jason           Tester&lt;br /&gt;
John            Accountant&lt;br /&gt;
Joe             Developer&lt;br /&gt;
Tom             COder&lt;br /&gt;
Jane            Director&lt;br /&gt;
James           Mediator&lt;br /&gt;
Jodd            Proffessor&lt;br /&gt;
Joke            Programmer&lt;br /&gt;
Jack            Developer&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table job&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using clause for table join==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table employees(&lt;br /&gt;
  2    empno      NUMBER(4)&lt;br /&gt;
  3  , ename      VARCHAR2(8)&lt;br /&gt;
  4  , init       VARCHAR2(5)&lt;br /&gt;
  5  , job        VARCHAR2(8)&lt;br /&gt;
  6  , mgr        NUMBER(4)&lt;br /&gt;
  7  , bdate      DATE&lt;br /&gt;
  8  , msal       NUMBER(6,2)&lt;br /&gt;
  9  , comm       NUMBER(6,2)&lt;br /&gt;
 10  , deptno     NUMBER(2) ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees values(1,&amp;quot;Jason&amp;quot;,  &amp;quot;N&amp;quot;,  &amp;quot;TRAINER&amp;quot;, 2,   date &amp;quot;1965-12-18&amp;quot;,  800 , NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(2,&amp;quot;Jerry&amp;quot;,  &amp;quot;J&amp;quot;,  &amp;quot;SALESREP&amp;quot;,3,   date &amp;quot;1966-11-19&amp;quot;,  1600, 300,   10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(3,&amp;quot;Jord&amp;quot;,   &amp;quot;T&amp;quot; , &amp;quot;SALESREP&amp;quot;,4,   date &amp;quot;1967-10-21&amp;quot;,  1700, 500,   20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(4,&amp;quot;Mary&amp;quot;,   &amp;quot;J&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 5,   date &amp;quot;1968-09-22&amp;quot;,  1800, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(5,&amp;quot;Joe&amp;quot;,    &amp;quot;P&amp;quot;,  &amp;quot;SALESREP&amp;quot;,6,   date &amp;quot;1969-08-23&amp;quot;,  1900, 1400,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(6,&amp;quot;Black&amp;quot;,  &amp;quot;R&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 7,   date &amp;quot;1970-07-24&amp;quot;,  2000, NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(7,&amp;quot;Red&amp;quot;,    &amp;quot;A&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 8,   date &amp;quot;1971-06-25&amp;quot;,  2100, NULL,  40);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(8,&amp;quot;White&amp;quot;,  &amp;quot;S&amp;quot;,  &amp;quot;TRAINER&amp;quot;, 9,   date &amp;quot;1972-05-26&amp;quot;,  2200, NULL,  40);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(9,&amp;quot;Yellow&amp;quot;, &amp;quot;C&amp;quot;,  &amp;quot;DIRECTOR&amp;quot;,10,  date &amp;quot;1973-04-27&amp;quot;,  2300, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(10,&amp;quot;Pink&amp;quot;,  &amp;quot;J&amp;quot;,  &amp;quot;SALESREP&amp;quot;,null,date &amp;quot;1974-03-28&amp;quot;,  2400, 0,     30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table history&lt;br /&gt;
  2  ( empno      NUMBER(4)&lt;br /&gt;
  3  , beginyear  NUMBER(4)&lt;br /&gt;
  4  , begindate  DATE&lt;br /&gt;
  5  , enddate    DATE&lt;br /&gt;
  6  , deptno     NUMBER(2)&lt;br /&gt;
  7  , msal       NUMBER(6,2)&lt;br /&gt;
  8  , comments   VARCHAR2(60)&lt;br /&gt;
  9  ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into history values (9,2000,date &amp;quot;2000-01-01&amp;quot;,date &amp;quot;2002-01-02&amp;quot;,40, 950,&amp;quot;history for 9&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (8,2000,date &amp;quot;2000-01-02&amp;quot;, NULL       ,20, 800,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (7,1988,date &amp;quot;2000-01-06&amp;quot;,date &amp;quot;2002-01-07&amp;quot;,30,1000,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (6,1989,date &amp;quot;2000-01-07&amp;quot;,date &amp;quot;2002-01-12&amp;quot;,30,1300,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (5,1993,date &amp;quot;2000-01-12&amp;quot;,date &amp;quot;2002-01-10&amp;quot;,30,1500,&amp;quot;history for 5&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (4,1995,date &amp;quot;2000-01-10&amp;quot;,date &amp;quot;2002-01-11&amp;quot;,30,1700,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (3,1999,date &amp;quot;2000-01-11&amp;quot;, NULL       ,30,1600,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (2,1986,date &amp;quot;2000-01-10&amp;quot;,date &amp;quot;2002-01-08&amp;quot;,20,1000,&amp;quot;history for 2&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (1,1987,date &amp;quot;2000-01-08&amp;quot;,date &amp;quot;2002-01-01&amp;quot;,30,1000,&amp;quot;history for 1&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (7,1989,date &amp;quot;2000-01-01&amp;quot;,date &amp;quot;2002-05-12&amp;quot;,30,1150,&amp;quot;history for 7&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select e.ename, e.bdate&lt;br /&gt;
  2  ,      h.deptno, h.msal&lt;br /&gt;
  3  from   employees e&lt;br /&gt;
  4         join&lt;br /&gt;
  5         history h&lt;br /&gt;
  6         using (empno)&lt;br /&gt;
  7  where  e.job = &amp;quot;MANAGER&amp;quot;;&lt;br /&gt;
ENAME    BDATE         DEPTNO       MSAL&lt;br /&gt;
-------- --------- ---------- ----------&lt;br /&gt;
Red      25-JUN-71         30       1000&lt;br /&gt;
Black    24-JUL-70         30       1300&lt;br /&gt;
Mary     22-SEP-68         30       1700&lt;br /&gt;
Red      25-JUN-71         30       1150&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table history;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employees;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using two columns during table join==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table course_schedule&lt;br /&gt;
  2  ( course     VARCHAR2(6)&lt;br /&gt;
  3  , begindate  DATE&lt;br /&gt;
  4  , trainer    NUMBER(4)&lt;br /&gt;
  5  , location   VARCHAR2(20)) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;SQL&amp;quot;,date &amp;quot;1999-04-12&amp;quot;,1,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;OAU&amp;quot;,date &amp;quot;1999-08-10&amp;quot;,2,&amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;SQL&amp;quot;,date &amp;quot;1999-10-04&amp;quot;,3,&amp;quot;SEATTLE&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;SQL&amp;quot;,date &amp;quot;1999-12-13&amp;quot;,4,&amp;quot;DALLAS&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;JAV&amp;quot;,date &amp;quot;1999-12-13&amp;quot;,5,&amp;quot;SEATTLE&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;XML&amp;quot;,date &amp;quot;2000-02-03&amp;quot;,6,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;JAV&amp;quot;,date &amp;quot;2000-02-01&amp;quot;,7,&amp;quot;DALLAS&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;PLS&amp;quot;,date &amp;quot;2000-09-11&amp;quot;,8,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;XML&amp;quot;,date &amp;quot;2000-09-18&amp;quot;,NULL,&amp;quot;SEATTLE&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;OAU&amp;quot;,date &amp;quot;2000-09-27&amp;quot;,9,&amp;quot;DALLAS&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;ERM&amp;quot;,date &amp;quot;2001-01-15&amp;quot;,10, NULL    );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;PRO&amp;quot;,date &amp;quot;2001-02-19&amp;quot;,NULL,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;RSD&amp;quot;,date &amp;quot;2001-02-24&amp;quot;,8,&amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table registrations&lt;br /&gt;
  2  ( attendee    NUMBER(4)&lt;br /&gt;
  3  , course      VARCHAR2(6)&lt;br /&gt;
  4  , begindate   DATE&lt;br /&gt;
  5  , evaluation  NUMBER(1)) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into registrations values (1, &amp;quot;SQL&amp;quot;,date &amp;quot;1999-04-12&amp;quot;,4   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (2, &amp;quot;SQL&amp;quot;,date &amp;quot;1999-12-13&amp;quot;,NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (3, &amp;quot;SQL&amp;quot;,date &amp;quot;1999-12-13&amp;quot;,NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (4, &amp;quot;OAU&amp;quot;,date &amp;quot;1999-08-10&amp;quot;,4   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (5, &amp;quot;OAU&amp;quot;,date &amp;quot;2000-09-27&amp;quot;,5   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (6, &amp;quot;JAV&amp;quot;,date &amp;quot;1999-12-13&amp;quot;,2   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (7, &amp;quot;JAV&amp;quot;,date &amp;quot;2000-02-01&amp;quot;,4   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (8, &amp;quot;JAV&amp;quot;,date &amp;quot;2000-02-01&amp;quot;,5   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (9, &amp;quot;XML&amp;quot;,date &amp;quot;2000-02-03&amp;quot;,4   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (10,&amp;quot;XML&amp;quot;,date &amp;quot;2000-02-03&amp;quot;,5   );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (1, &amp;quot;PLS&amp;quot;,date &amp;quot;2000-09-11&amp;quot;,NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (2, &amp;quot;PLS&amp;quot;,date &amp;quot;2000-09-11&amp;quot;,NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into registrations values (3, &amp;quot;PLS&amp;quot;,date &amp;quot;2000-09-11&amp;quot;,NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select o.trainer, avg(r.evaluation)&lt;br /&gt;
  2  from   course_schedule o&lt;br /&gt;
  3         join&lt;br /&gt;
  4         registrations r&lt;br /&gt;
  5         using (course,begindate)&lt;br /&gt;
  6  group  by o.trainer;&lt;br /&gt;
   TRAINER AVG(R.EVALUATION)&lt;br /&gt;
---------- -----------------&lt;br /&gt;
         1                 4&lt;br /&gt;
         6               4.5&lt;br /&gt;
         2                 4&lt;br /&gt;
         4&lt;br /&gt;
         5                 2&lt;br /&gt;
         8&lt;br /&gt;
         7               4.5&lt;br /&gt;
         9                 5&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table course_schedule;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table registrations;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>