Читайте также:
|
|
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.
Псевдонимы таблиц
Имена таблиц могут оказаться слишком длинными. В этом случае при составлении корректного запроса код SQL может оказаться очень большим, что увеличит время отклика, т.к. на обработку такого запроса понадобится больше времени. Чтобы уменьшить код SQL, и, следовательно, ускорить выполнение запроса, используйте псевдонимы вместо имен таблиц в многотабличных запросах. Использование псевдонима таблицы при однотабличном запросе может, наоборот, увеличить время отклика.
SQL> SELECT d.deptno, d.dname, e.deptno, e.ename FROM dept d, emp e
2 WHERE d.deptno=e.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.
Псевдоним таблицы может содержать до 30 символов. Если в запросе указан псевдоним таблицы, перед именами столбцов следует использовать этот псевдоним вместо имени таблицы во всем предложении SELECT. Псевдоним таблицы действителен только для текущей команды SELECT.
Дата добавления: 2014-12-18; просмотров: 155 | Поможем написать вашу работу | Нарушение авторских прав |