> ôÕÔ ×ÒÏÄÅ ÐÒÉ×ÏÄÉÌÉ ÐÒÉÍÅÒ ÒÅÛÅÎÉÑ Ó ÐÏÍÏÝØÀ 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-ÏÍ ÓÄÅÌÁÔØ ËÒÁÊÎÅ ÐÒÏÂÌÅÍÁÔÉÞÎÏ.
ó Õ×ÁÖÅÎÉÅÍ, óÁÍÏÈ×ÁÌÏ× çÒÉÇÏÒÉÊ