IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Requête SQL complexe


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 139
    Par défaut Requête SQL complexe
    Bonjour ,

    J'ai une requête sql ou je teste si un trajet existe pour cela j’introduis dans le WHERE la ville de départ et la ville d'arriver dans ce cas la c'est bon par exemple ( Paris - Marseille ) sinon le problème très exactement c'est quand je veux voir si un trajet existe a l’intérieur du trajet précédent par exemple :

    la ville de Thiais et la ville Magny appartiennent au trajet ( Paris - Marseille ) et ce que je veux exactement c'est que si j’introduis comme ville de départ "Thiais" et ville d'arriver "Magny" je veux quand même avoir comme résultat le trajet ( Paris - Marseille ) !

    Comment écrire la requête exactement svp ?

    j'ai deux tables : Trajet et villeParcouru le lien entre elle est le champ : id_trajet

    Nom : table1.jpg
Affichages : 281
Taille : 114,7 Ko

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 769
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Communiquez le DDL de vos tables et index (create table etc...)
    Communiquez un extrait de votre jeu de données et un exemple de résultat attendu

    Enfin précisez le SGBD et sa version, la solution n'est pas toujours la même selon le SGBD

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 139
    Par défaut
    Je vous passe le fichier sql des deux tables :

    villeParcouru.sql
    villeParcouru.sql

    trajet.sql
    trajet.sql

    le SGBD est : mysql Ver 14.14 Distrib 5.5.47

    Exemple de résultat attendu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECTt id_trajet FROM  ville_parcouru WHERE nom = "Thiais" AND nom = "Magny"
    et la réponse de la requete doit être 1 qui correspond à l'id du trajet

    Cordialement.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 769
    Billets dans le blog
    10
    Par défaut
    Hum,

    Au lieu d'un résultat attendu vous communiquez une requête dont le résultat est obligatoirement un ensemble vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE nom = "Thiais" AND nom = "Magny"


    Et le DDL est illisible, communiquez quelque chose mis en forme avec des retours à la ligne, il y a des gens pour vous aider, à conditions que vous fassiez un minimun d'effort pour rendre le sujet lisible

  5. #5
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 475
    Par défaut
    Bonjour,

    SELECT id_trajet FROM ville_parcouru WHERE nom = "Thiais" AND nom = "Magny"
    C'est à peu près ça. Mais tu dois créer des couples de villes pour ton trajet. Pour cela tu dois faire une auto jointure (utiliser deux fois la même table dans ta jointure). Pour garantir que ton couple de ville est dans l'ordre de passage dans le sens de ton parcours, tu dois utiliser les distances cumulées pour limiter le nombre de couples. A partir de cette liste de couples, tu peux sélection le point de départ et d'arrivée du trajet intermédiaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select a.id_trajet  
      from villeparcouru a join villeparcouru b on a.id_trajet = b.id_trajet  and a.cumdist < b.cumdist
    where a.nom = 'Thiais' and b.nom = 'Magny'
    Cordialement

  6. #6
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Il y a aussi ici un petit papier de SQLPro sur ce même sujet datant de 2006.

    a+

Discussions similaires

  1. requête sql complexe
    Par julien_d dans le forum SQL
    Réponses: 7
    Dernier message: 01/05/2007, 17h03
  2. Requète SQL complexe
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 01/08/2006, 10h10
  3. Requête sql complexe
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/01/2006, 11h55
  4. Requête SQL Complexe
    Par zut94 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/11/2005, 20h53
  5. Requête SQL complexe. Comment faire ....
    Par BilTCD dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/11/2004, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo