Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA

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

;


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

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

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


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru