SELECT [ALL | DISTINCT] список_выбора

FROM таблица1 [псевдоним1], таблица2 [псевдоним2], …

[WHERE условие_соединения]

[ORDER BY {столбец | псевдоним | позиция} [ASC | DESC];

Для корректного построения многотабличного запроса необходимо задать условие соединения таблиц (реляционная операция «Соединение»). Условие соединения указывается в предложении WHERE. Перед именами столбцов в списке SELECT рекомендуется указывать имена соответствующих таблиц. Имя таблицы отделяется точкой от имени столбца. Это правило носит рекомендательный характер в том случае, если имена столбцов, перечисленных в списке SELECT, уникальны (имеются только в одной таблице). Если Вы запрашиваете столбцы с одинаковыми именами из разных таблиц, обязательно указывайте имена таблиц перед именами столбцов.

SQL> SELECT deptno, dname, deptno, ename

2 FROM dept, emp

3 WHERE deptno=deptno;

WHERE deptno=deptno

*

ERROR at line 3:

ORA-00918: column ambiguously defined

SQL> SELECT dept.deptno, dname, emp.deptno, ename

2 FROM dept, emp

3 WHERE dept.deptno=emp.deptno;

DEPTNO DNAME DEPTNO ENAME

--------- -------------- --------- ----------

10 ACCOUNTING 10 CLARK

10 ACCOUNTING 10 KING

10 ACCOUNTING 10 MILLER

20 RESEARCH 20 SMITH

20 RESEARCH 20 ADAMS

20 RESEARCH 20 FORD

20 RESEARCH 20 SCOTT

20 RESEARCH 20 JONES

30 SALES 30 ALLEN

30 SALES 30 BLAKE

30 SALES 30 MARTIN

30 SALES 30 JAMES

30 SALES 30 TURNER

30 SALES 30 WARD

14 rows selected.