Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > JOIN


Автор: Cetus 20.7.2005, 12:14
Есть ли в Oracle команда Join?
перерыл кучу мануалов, не нашел подробного описания JOIN,
покажите пример или дайте ссылку, plz.

Автор: g-m 20.7.2005, 13:22
Join - есть, но начиная с версии 9.

Если совсем детально хочешь, читай стандарт SQL-92

Автор: LSD 20.7.2005, 13:25
http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/queries006.htm#sthref2614

Автор: Scripter 21.7.2005, 15:51
Синтаксиса именно "JOIN" нет.
В Оракле таблицы связываются и синтакстически это выглядит как INNER JOIN в мускуле, т.е. через запятую.

Автор: LSD 21.7.2005, 16:44
Цитата(Scripter @ 21.7.2005, 16:51)
Синтаксиса именно "JOIN" нет.

Oracle поддерживает оба варианта синтаксиса SQL-92:
Код
SELECT d.department_id, e.last_name
   FROM hr.departments d LEFT OUTER JOIN hr.employees e
   ON d.department_id = e.department_id
   ORDER BY d.department_id

и свой собственный:
Код
SELECT d.department_id, e.last_name
   FROM departments d, employees e
   WHERE d.department_id = e.department_id(+)
   ORDER BY d.department_id

эти запросы эквивалентны.

Автор: Scripter 22.7.2005, 07:27
LSD
смотря какая версия.
Если я в 817 введу твой запрос с "LEFT OUTER JOIN" то получу "SQL Command not properly ended".

Автор: Cetus 26.7.2005, 19:41
покажите, plz, пример запроса который при соединении двух таблиц создает пустые записи для первой таблицы если в ней нет данных соответствующей какой либо записи второй таблицы.

Автор: igon 27.7.2005, 06:05
Из доки:
Код

Oracle9i SQL Reference
Release 1 (9.0.1)

SQL Statements: 
SAVEPOINT to UPDATE, 3 of 9 

SELECT 
...
Outer Join Examples
The following example uses a left outer join to return the names of all departments, even if no employees have been assigned to them: 

SELECT d.department_id, e.last_name
   FROM departments d LEFT OUTER JOIN employees e
   ON d.department_id = e.department_id
   ORDER BY d.department_id;


"Первая" таблица здесь - employees.
Или так
Код

SELECT d.department_id, e.last_name
   FROM employees e RIGHT OUTER JOIN departments d
   ON d.department_id = e.department_id
   ORDER BY d.department_id;




Автор: Cetus 27.7.2005, 06:36
iqon, спасибо!
то что док прописал smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)