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

Requêtes MySQL Discussion :

Requete sur des coordonnées


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Requete sur des coordonnées
    Bonjour,

    J'ai une base de données qui contient une liste de coordonnées géographiques.
    Je souhaite exécuter une requête qui sélectionnerait uniquement les points présents dans une zone géographique.
    J'ai essayé ceci, mais cela ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT donnees.data_id, missions.miss_id, navires.nav_id, donnees.data_latitude, donnees.data_longitude, donnees.data_capteur, donnees.data_portee, donnees.data_temperature, donnees.data_date, missions.miss_nom, navires.nav_nom 
    FROM donnees, missions, navires 
    WHERE donnees.missions_id = missions.miss_id 
    AND missions.navires_id = navires.nav_id 
    AND (data_latitude BETWEEN -9.3624 AND -37.3702)
    AND (data_longitude BETWEEN 24.2578 AND 59.7656)
    Une idée sur ce qui ne fonctionne pas ?
    J'utilise MySQL.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    cela ne fonctionne pas n'est pas un message d'erreur et ne décrit pas le problème rencontré...
    Dans ces conditions, il est difficile de t'aider.

    Toutefois, tu peux commencer par écrire tes jointures en utilisant l'opérateur normalisé JOIN et ajouter des alias de table devant tous les noms de colonnes utilisés dans la requête.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut crashpon.

    Citation Envoyé par crashpon
    J'ai une base de données qui contient une liste de coordonnées géographiques.
    C'est bien, mais sans le descriptif de tes tables, il nous est difficile de savoir, si ce que tu as fait est correcte ou pas.

    Citation Envoyé par crashpon
    Je souhaite exécuter une requête qui sélectionnerait uniquement les points présents dans une zone géographique.
    La sélection de tes points dépend essentiellement de la façon dont tu les as déclarés dans ta table.

    A lire : http://dev.mysql.com/doc/refman/5.7/...xtensions.html


    Citation Envoyé par crashpon
    Une idée sur ce qui ne fonctionne pas ?
    On ne peut pas deviner le problème que tu as, sans descriptif de la table, sans jeu d'essai et sans message d'erreur.

    Sinon, suivre le bon conseil de al1_24 : utilisez les jointures !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SELECT tb1.data_id,
           tb2.miss_id,
           tb3.nav_id,
           tb1.data_latitude,
           tb1.data_longitude,
           tb1.data_capteur,
           tb1.data_portee,
           tb1.data_temperature,
           tb1.data_date,
           tb1.miss_nom,
           tb1.nav_nom 
    FROM       donnees  as tb1
    INNER JOIN missions as tb2
    ON tb2.miss_id = tb1.missions_id
     
    INNER JOIN navires  as tb3
    ON tb3.nav_id = tb2.navires_id
     
    WHERE (tb1.data_latitude  BETWEEN  -9.3624 AND -37.3702)
      AND (tb1.data_longitude BETWEEN  24.2578 AND  59.7656)
    ;
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    votre problème d'une mauvaise utilisation du BETWEEN dont la première opérande doit être la borne basse.

    Donc ceci ne sera jamais vrai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data_latitude BETWEEN -9.3624 AND -37.3702
    il faudrait plutôt écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data_latitude BETWEEN  -37.3702 AND -9.3624

Discussions similaires

  1. Requete sur des données horaires avec des trous..
    Par edmc73 dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 11/09/2007, 21h02
  2. requete sur des dates
    Par nox75 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/05/2007, 11h04
  3. probleme de requetes sur des tables volumineuses
    Par abdoracle dans le forum Oracle
    Réponses: 6
    Dernier message: 14/06/2006, 15h41
  4. requete sur des tables non liées
    Par matesp dans le forum Access
    Réponses: 3
    Dernier message: 03/05/2006, 17h01
  5. Requete sur des fichiers XML
    Par buildit dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/05/2005, 10h57

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