Условие MAX для левого внешнего соединения

----------
samples
----------
SamplesID
stylenumber
stylename
status

-----------
samples_details
-----------
Samples_Details_ID
SamplesID
CustomerName
date_out
date_returned
updated (timestamp)
status

------------
samples_pictures
------------
SamplesPicID
SamplesID

Попытка написать запрос, который дает мне все строки из выборок, все совпадения (если есть) из samples_pictures и самую последнюю запись (если есть) из samples_details. Итак, два левых внешних соединения, но одно извлекает только самую последнюю запись.

Что не работает:

SELECT samples.*
     , samples_pictures.SamplesPicID
     , CustomerName
     , date_out
     , date_returned
     , updated
     , samples_details.status as txn_status 
FROM samples 
    LEFT OUTER JOIN
      ( SELECT Samples_Details_ID
             , samples_details.status as txn_status
             , MAX(updated) as MaxUpdated
        FROM samples_details
        GROUP BY Samples_Details_ID
      ) AS MaxTable
      ON MaxTable.SamplesID = samples.SamplesID 
    LEFT OUTER JOIN samples_pictures
      ON samples.SamplesID = samples_pictures.SamplesID

Любая помощь будет принята с благодарностью!

5
задан ypercubeᵀᴹ 13 April 2011 в 19:03
поделиться