Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ ORACLE SQL \ JAVA ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Oracle, конструкция with


Разберем констркцию with для Oracle SQL

Выберем из таблицы M_MAIL, значения подходящие по условиям 

1) M_MAIL.ID = RECIPIENTS.ID_MAIL где RECIPIENTS.ID <= 700

2) M_MAIL.IDP = PROJECTS.ID_PROJ где PROJECTS.ID  <= 20

with

temp_t1 as ( select ID from RECIPIENTS where ID <= 700 ),
temp_t2 as ( select ID_PROJ from PROJECTS where ID  <= 20 )

select * from M_MAIL c where
exists ( select * from temp_t1 a where a.ID_MAIL = c.ID ) and
exists ( select * from temp_t2 b where b.ID_PROJ = c.IDP )
order by c.ID 
;

Эквивалент:
select distinct c.* 
from M_MAIL c
inner join RECIPIENTS a on a.ID_MAIL =  c.ID and a.ID < =700
inner join PROJECTS b on b.ID_PROJ =  c.IDP and b.ID <= 20
order by c.ID

;


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект