Probleme select/mysql

Résolu
Salut a tous ,
j'ai un probleme avec une de mes requetes :

je n'arrive pas a recuperer le champ " t2.dateLogin" (jai un retour NULL ),les champs existes et si j'execute juste la sous-requete (tx) en presisant le customerId je recupere les bonnes donnees

SELECT t1.id , t1.regStatus ,
t2.dateLogin
FROM customers AS t1
LEFT JOIN (
SELECT MAX(tx.dateLogin) AS dateLogin,tx.customerId
FROM customer_login_log AS tx
) AS t2
ON t2.customerId = t1.id
WHERE t1.id = 52

merci d'avance pour votre aide.

3 réponses

  1. Bonjour

    Je ne suis pas sûr du tout, mais j'essaierais :
    SELECT t1.id , t1.regStatus , t2.dateLogin 
    FROM customers AS t1 
    LEFT JOIN ( 
    SELECT MAX(tx.dateLogin) AS dateLogin,tx.customerId AS txId 
    FROM customer_login_log AS tx 
    ) AS t2 
    ON t2.txId = t1.id 
    WHERE t1.id = 52 


    car je trouve troublant le t2.customerId dans ta condition de jointure alors que dans la sous-requête t2, il n'y a pas customerId tout court mais tx.customerId.
    1. Bonjour,

      Est-ce qu'il ne manquerait pas un GROUP BY dans ta sous-requête ?
      As-tu essayé de l'exécuter telle qu'elle ?

      Xavier
      1. merci à tous les deux , je me suis rendu compte que je me compliquer en fait la tâche

        jai resolu le probleme comme ca :

        SELECT t1.id , t1.regStatus ,
        MAX(t2.dateLogin) as dateLogin
        FROM customers AS t1
        LEFT JOIN customer_login_log AS t2 ON t2.customerId = t1.id
        WHERE t1.id = 52