Probleme select/mysql

Résolu/Fermé
raph931 Messages postés 2 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 18 décembre 2014 - Modifié par raph931 le 17/12/2014 à 17:53
raph931 Messages postés 2 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 18 décembre 2014 - 18 déc. 2014 à 16:43
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

Utilisateur anonyme
17 déc. 2014 à 21:26
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.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
18 déc. 2014 à 11:06
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
0
raph931 Messages postés 2 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 18 décembre 2014
Modifié par raph931 le 18/12/2014 à 16:45
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
0