Проект «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

;


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

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

Контакты для обмена ссылками между сайтами Видео к статьям на Youtube Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и Linux Код обмена баннерами
Мои друзья: www.info-x.org - Информационный ресурс о ОС FreeBSD За сложными вещами простые действия Новости Ubuntu Linux Сообщество сисадминов Личный сайт skeletora Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

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

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