Table correlees de longueur differentes

ERYLON
Invité n'ayant pas de compte PHPfrance

25 juil. 2016, 13:32

Bonjour
Je cherche à faire une requete SQL qui depasse mes competences. Pourtant ca me parait simple.
Je simplifie le pb :
Soit une table de noms TNOM:
ID
NOM

Soit une table de date TDATE
NOMID
DATE

si quelqu'un de TNOM fait qq chose on rajoute la date dans la table TDATE avec la date et l'ID de la personne
il peut donc y avoir plusieurs date par personne et une personne peut ne pas avoir de date.

PB :
je veux recuperer tous les noms de personnes (qu'ils aient ou pas de date) et la derniere date de ces personnes s'ils en ont une

Je suis incapable de trouver la forme de la requete SQL SELECT (une seule requete obligatoire)

Quelqu'un sait il comment faire ?

Merci !

erylon
Invité n'ayant pas de compte PHPfrance

25 juil. 2016, 13:40

PS :bien sur s'il n'y a pas de date il faut que ca reponde qqch comme par exemple : "non"

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 juil. 2016, 18:19

Avec une sous-reuête dans ce genre là :
SELECT nom, 
 (SELECT MAX(date) FROM TDATE WHERE NOMID=ID)  AS dern_date
FROM   TNOM
Ou sinon c'est possible avec des jointures type INNER JOIN, il y a pas mal de tuto sur internet :
https://openclassrooms.com/courses/admi ... ointures-1
https://www.areaprog.com/sql/article-30 ... outer-join

Attention, comme le montre la coloration syntaxique, il est fortement déconseillé des noms de champs qui sont des mots clés SQL, donc j'espère vraiment que le nom de ton champ "date" est juste pour la simplification de l'explication ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...