|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour,
Voilà, je dois faire une requête particulière et je ne sais si je peux la faire en une seule. Voici le contexte : J'ai 3 tables :
Dans cette 3ème table, je peux donc retrouver l'historique des conducteurs par voiture avec une date de début et date de fin. Ma requête est la suivante : Je dois avoir la liste des tous les véhicules (même sans conducteur) avec s'il existe le nom du dernier conducteur (me basant sur la date de début de la table plusieurs-à-plusieurs) Pour le moment, j'arrive à ceci : Code :
Pouvez-vous m'aider ? Merci d'avance
__________________
Sébastien Bervoets |
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
Beaucoup d'horreur dans cette requête...
1) pourquou un GROUP BY ??? Pour plomber les performances du SSGBDR parce que vous avez trops de CPU, RAM... ???, 2) pourquoi ne pas mettre des laias de table pour soulager votre code ? 3) pourquoi ne pas avoir mis le même nom de colonne entre la clef primaire de votre table et le clef étrangère représentant cette clef primaire dans une autre table ? (ce sont les mêmes données et même données = même code !!!). ENfin, pour faire cela il faut soit une sous requ^^ete avec un MAX, soit une fonction de fenêtrage. A - votre requête récrite : Code :
Code :
http://www.developpez.net/forums/a69...gage-sql-lire/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() |
Tout d'abord merci Frédéric.
Je comprends que le code que tu as vu t'as fait bondir mais je le voulais le plus simple possible pour les lecteurs. Je fais encore des erreurs mais je tente de m'améliorer chaque jour. Tes conseils vont déjà m'aider ;-) Je n'avais pas vu la charte et je m'en excuse. Voici les schémas des tables impliquées. Code :
Merci
__________________
Sébastien Bervoets |
||
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() |
J'ai finalement réussi par trouver la solution grâce à toi et en supprimant la cause WITH que MySQL ne comprend pas :
Code :
PS: J'ai parcouru également le début de tes cours et c'est très intéressant. J'aime la façon dont tu expliques simplement les choses.
__________________
Sébastien Bervoets |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com