1
Je suis en train de JOINDRE l'enregistrement le plus récent de la table "corr" pour le reste de ma recherche. Au lieu du dernier enregistrement, il rejoint le premier enregistrement.MySQL JOIN dernier enregistrement
Des suggestions?
SELECT c.*,
cc.*,
com.*,
cor.corr_id,
cor.corr_method,
cor.corr_action,
cor.corr_description,
cor.corr_date_added
FROM contacts c
LEFT JOIN companies_contacts cc
ON c.contact_id = cc.contact_id
LEFT JOIN companies com
ON com.company_id = cc.company_id
LEFT JOIN
(SELECT contact_id,
corr_id,
MAX(corr_date_added) AS max_date_added
FROM corr
GROUP BY contact_id) y
ON y.contact_id = c.contact_id
LEFT JOIN corr cor
ON cor.corr_id = y.corr_id
GROUP BY cc.com_con_id
ORDER BY c.contact_last_name ASC
LIMIT 0, 25
CE TRAVAILLE:
SELECT c.*, cc.*, com.*, cor.corr_id, cor.corr_method, cor.corr_action, cor.corr_description, cor.corr_date_added
FROM contacts c
LEFT JOIN companies_contacts cc ON c.contact_id = cc.contact_id
LEFT JOIN companies com ON com.company_id = cc.company_id
LEFT JOIN (SELECT max.contact_id, max.corr_id, MAX(max.corr_date_added) AS max_date_added
FROM corr max GROUP BY max.contact_id) y ON y.contact_id = cc.contact_id
LEFT JOIN corr cor ON max_date_added = cor.corr_date_added AND y.contact_id = cor.contact_id
GROUP BY cc.com_con_id
ORDER BY c.contact_last_name ASC LIMIT 0,25
Le problème est MAX ne retournera la valeur la plus élevée du champ corr_date_add. Il ne renvoie pas la ligne associée à cette valeur. – winternights83