> ôÕÔ ×ÒÏÄÅ ÐÒÉ×ÏÄÉÌÉ ÐÒÉÍÅÒ ÒÅÛÅÎÉÑ Ó ÐÏÍÏÝØÀ derived tables, ÎÏ ÏÎ ÎÅ 
> ÓÏ×ÓÅÍ ÐÒÉÍÉÔÉ×ÅÎ. þÔÏ-ÔÏ ÔÉÐÁ:
>
> select e.*, d.*
> from k_employ e
>   join ( select idlink, max(dt) as dt
>          from k_employ_docs
>          group by 1 ) as temp
>     on temp.idlink = e.id
>   join k_employ_docs d
>     on d.idlink = e.id and d.dt = temp.dt
>
> îÕ ÉÌÉ ÂÏÌÅÅ ÔÒÁÄÉÃÉÏÎÎÏ:
> select e.*, d.*
> from k_employ e
>   join k_employ_docs d
>     on e.id = d.idlink
> where d.dt = ( select max(dt)
>                from k_employ_docs
>                where idlink = e.id )

ïÂÁ ÚÁÐÒÏÓÁ ×ÙÄÁÀÔ Ñ×ÎÏ ÎÅ ÔÏÔ ÒÅÚÕÌØÔÁÔ. õ ÍÅÎÑ Õ ÎÅÓËÏÌØËÉÈ ÓÏÔÒÕÄÎÉËÏ× ÎÅ 
ÚÁÂÉÔÙ ÐÁÓÐÏÒÔÁ, Õ ÏÄÎÏ ÚÁÂÉÔÏ Ä×Á ÚÁ ÒÁÚÎÙÅ ÄÁÔÙ.

ðÅÒ×ÙÊ ÚÁÐÒÏÓ ÉÇÎÏÒÉÒÕÅÔ ÂÅÓÐÁÓÐÏÒÔÎÙÈ. äÒÕÇÉÅ ÏÇÒÅÈÉ Ñ ÎÅ ÓÍÏÔÒÅÌ - ÎÁÄÏ 
ËÁË ÓÌÅÄÕÅÔ ÒÁÚÂÉÒÁÔØÓÑ É ÔÅÓÔÉÒÏ×ÁÔØ ÎÁ ËÏÎËÒÅÔÎÙÈ ÄÁÎÎÙÈ. ó ÕÞÅÔÏÍ 
ÎÅÔÒÉ×ÉÁÌØÎÏÓÔÉ ÚÁÐÒÏÓÁ ÓÌÏÖÎÏÓÔØ ÚÁÄÁÞÉ ÔÅÓÔÉÒÏ×ÁÎÉÑ ×ÏÚÒÁÓÔÁÅÔ ÎÁ ÐÏÒÑÄÏË.

÷ÔÏÒÏÊ ÔÁËÖÅ ÉÇÎÏÒÉÒÕÅÔ ÂÅÓÐÁÓÐÏÒÔÎÙÈ. óÌÅÄÕÀÝÅÊ ÍÏÄÅÒÎÉÚÁÃÉÅÊ ÐÒÏÂÌÅÍÁ 
ÕÓÔÒÁÎÑÅÔÓÑ:

select e.*,d.*
from k_employ e
   left join k_employ_docs d
     on e.id = d.idlink and d.typ = 21
where d.dt = (select max(dt) from k_employ_docs where idlink = e.id and 
d.typ = 21)
or d.idlink is null

÷ÒÏÄÅ ÂÙ ×ÓÅ ËÏÒÒÅËÔÎÏ, ÎÏ ÔÏÖÅ ÎÅ ÏÓÏÂÏ ÔÒÉ×ÉÁÌØÎÏ É ÔÒÅÂÕÅÔ ÔÅÓÔÉÒÏ×ÁÎÉÑ. 
ñ ÕÖÅ ÎÅ ÇÏ×ÏÒÀ Ï ÔÏÍ, ÞÔÏ ÜÔÏÔ ÚÁÐÒÏÓ ×ÙÐÏÌÎÑÅÔÓÑ ÎÁ ÐÏÒÑÄÏË ÄÏÌØÛÅ, ÞÅÍ 
ÅÓÌÉ ÂÙ ÜÔÏ ÂÙÌÏ ÓÄÅÌÁÎÏ ÞÅÒÅÚ ÐÏÄÚÁÐÒÏÓ.

äÁ É ×ÏÏÂÝÅ, ×ÓÅ ÜÔÏ - ÞÁÓÔÎÙÊ ÓÌÕÞÁÊ. íÎÏÇÏÏÂÒÁÚÉÅ ÐÏÄÚÁÐÒÏÓÏ×, ËÏÔÏÒÙÅ Õ 
ÎÁÓ ×ÓÔÒÅÞÁÀÔÓÑ ÔÁËÏ×Ï, ÞÔÏ ÅÓÌÉ ÄÌÑ ËÁÖÄÏÇÏ ÐÒÉÄÕÍÙ×ÁÔØ Ó×ÏÀ ÓÈÅÍÕ 
ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ Ë join-Õ ÍÁÌÏ ÎÅ ÐÏËÁÖÅÔÓÑ. äÁ É ÒÅÚÕÌØÔÁÔ ÔÁËÏÇÏ 
ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÎÅ ×ÐÅÞÁÔÌÑÅÔ - ×ÏÚÒÏÓÛÁÑ ÓÌÏÖÎÏÓÔØ, ÎÉÚËÏÅ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÅ. 
þÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ join-ÏÍ ÄÅÌÁÅÔÓÑ join-ÏÍ, ÓÐÏÒÕ ÎÅÔ. îÏ ÅÓÔØ ÍÎÏÇÏ ÔÏÇÏ, 
ÞÔÏ join-ÏÍ ÓÄÅÌÁÔØ ËÒÁÊÎÅ ÐÒÏÂÌÅÍÁÔÉÞÎÏ.

ó Õ×ÁÖÅÎÉÅÍ, óÁÍÏÈ×ÁÌÏ× çÒÉÇÏÒÉÊ



Reply via email to