Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2010, 16:57   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию Как выглядят на стандартном SQL объединения в Oracle?

Господа, никак не могу найти статейку (плохо ищу видимо) о том что из себя представляет строка
Код:
поле1=поле2(+)
из Оракла.
Знаю что (+) это что-то типа JOIN, но никак не вьеду как этот JOIN записать в нормально виде
Пример запроса
Код:
SELECT fimar,mant
FROM  OCOMP C, r01 A
WHERE
(C.KOMP=A.NAIM(+)
Как это с JOIN записать?
Заранее спасибо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.03.2010, 17:00   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

left outer join

З.Ы.: на оракле лучше пользоваться оракловыми нотациями, не на всех версиях анси-шные варианты адекватно работают
soleil@mmc вне форума Ответить с цитированием
Старый 09.03.2010, 17:12   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
на оракле лучше пользоваться оракловыми нотациями
А я и не собираюсь на Оракле работать.
Мне запрос нужно перетянуть в MS SQL.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2010, 19:46   #4
forumdin
Пользователь
 
Регистрация: 10.03.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
SELECT fimar,mant
FROM  OCOMP C, r01 A
WHERE
(C.KOMP=A.NAIM(+)
Как это с JOIN записать?

Это означает объединение ВСЕХ записей из таблицы "C" и только тех записей из таблицы "A", в которых связанные поля совпадают (поля C.KOMP и A.NAIM).
Следовательно Ваш запрос с помошью JOIN можно записать так:
Код:
SELECT fimar,mant
FROM  OCOMP C LEFT JOIN  r01 A
ON C.KOMP=A.NAIM
... или так, поменяв порядок следования таблиц в SQL предложении:
Код:
SELECT fimar,mant
FROM  r01 A RIGHT JOIN  OCOMP C
ON C.KOMP=A.NAIM
Если же было такое объединение: C.KOMP(+)=A.NAIM, то его следовало бы читать так:
Объединение ВСЕХ записей из таблицы "A" и только тех записей из таблицы "C", в которых связанные поля совпадают.

А вообще, чтобы не запутаться с этими плюсами, просто держите в голове, что "(+)" - это как бы довесок, т.е. не все записи, а какая-то часть.
forumdin вне форума Ответить с цитированием
Старый 29.03.2010, 12:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
forumdin
Спасибо за допразьяснения
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на SQL (Oracle) soleil@mmc SQL, базы данных 1 18.01.2010 17:55
PL/SQL для oracle Artanis SQL, базы данных 6 06.12.2009 19:11
Oracle pl/sql МаксMorfey Помощь студентам 0 02.12.2009 16:12
Как открыть страницу в стандартном браузере? TwiX Общие вопросы Delphi 4 07.08.2009 14:52
Как отображать дроби в стандартном виде RamireZ Общие вопросы Delphi 4 20.10.2008 21:31