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