2017-06-12 1 views
3

Ceci est ma première question dans stackoverflow et j'espère avoir une réponse rapidement à mon problème. :) J'ai essayé pendant un certain temps de chercher d'autres sources mais malheureusement, je n'ai pas trouvé de réponse satisfaisante.SQL Sélectionnez toutes les colonnes d'une table et la valeur Max d'une autre colonne sur une autre table

Alors, je travaille sur un projet et que je suis un débutant à sql, je ne peux pas le faire:

J'ai 2 tables:

nom « Les clients » avec des colonnes « id », » " "nom de famille"("id" est la clé primaire)
"Sessions" avec colonnes "id", "client", "EntryDate"("id" est la clé primaire)

"client" de" Sessions "est lié à" id "de" Customers ". (clé étrangère)

J'ai besoin d'une requête qui renvoie toutes les colonnes de la table "Clients" avec une colonne supplémentaire affichant la date d'entrée du dernier enregistrement "Sessions", de chaque client bien sûr. La table "Sessions" peut contenir de nombreux enregistrements pour un enregistrement "Customers" individuel, comme vous pouvez l'imaginer.

Merci d'avance à tout le monde et j'espère avoir bientôt une réponse.

+0

qui [SGBD] (https://en.wikipedia.org/wiki/DBMS) utilisez-vous? Postgres? Oracle? –

Répondre

3

je manquerai quelque chose de vraiment évident, mais cela semble vraiment sql vraiment le genre de base que vous pouvez trouver dans un tutoriel sql https://www.w3schools.com/SQL/sql_groupby.asp

SELECT C.name,c.lastName,MAX(S.entryDate) FROM customers C 
inner join Sessions S ON S.CustomerId=C.Id 
group by C.name,C.lastName 
+0

Mark, vous ne manquez rien ... :) Nous partons tous de quelque part, non? Pour vous dire la vérité, j'ai réussi à le faire fonctionner après avoir étudié avec une sous-requête, mais votre approche semble beaucoup plus facile. J'ai effectivement essayé votre méthode avant de lister la question ici, mais ma syntaxe était erronée et j'ai reçu une erreur ... Restez à l'écoute car j'aurai peut-être besoin de votre aide à l'avenir, j'espère pour des requêtes plus complexes. :) Encore merci. –

+0

Désolé @JohnKastana Je ne voulais pas vous trouver comme ça mais peut-être que vous pourriez bénéficier de suivre quelques tutoriels peut-être quelque chose comme un simple panier/client, commande, tutoriel de livraison aiderait beaucoup. Le meilleur conseil que je peux vous donner lorsque vous travaillez avec SQL n'est pas de penser à un seul article mais de penser à la théorie des ensembles. Ça vaut le coup d'un google. – Mark

1

est aussi simple que cela.

SELECT C.id,C.name,c.lastName,MAX(S.entryDate) as lastEntry FROM customers C join Sessions S ON S.CustomerId=C.Id group by C.id

+0

Osaf, merci aussi pour votre aide. –