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 sur tables liées


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut Requête sur tables liées
    Bonjour à tous,
    Je travail sous sous pyodbc et je dois faire une requète SQL, Je fais habituellement du code sous python et je sollicite votre aide n'ayant pas d'expérience sous SQL.
    J'ai
    une table event
    champs : numev, date, desc_even

    une table action liée à la table event par numev
    champs ; numev, numaction, desc_action

    et je voudrais les actions dont la date de event est entre deux valeurs, il peux y avoir plusieurs actions pour un event.

    Je sais faire un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM event WHERE date BETWEEN #2013/10/14# AND #2013/10/18#;
    Mais je voudrais les actions avec les numéros d'event associés

    Pourriez vous m'indiquer la requête

    Merci de votre aide

    Alex

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM event
    INNER JOIN action
    ON action.numev = event.numev
    WHERE event.date <= '0000-00-00' AND event.date >= '0000-00-00'
    Je crois qu'il y a une fonction SQL propre pour distinguer une plage de date mais je ne l'ai plus en tête !

  3. #3
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut
    Merci ! je regarde

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Oui BETWEEN je crois que c'est ça mais regarde bien le format de ta date dans la table, parfois c'est du style 0000-00-00 00:00:00 et non 0000/00/00.

  5. #5
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut
    Merci de ton aide cela fonctionne et m'a permis de démarrer très rapidement

    J'ai regardé les tutos de SQL, j'aurais deux questions complémentaires
    Avec les deux requêtes suivantes :
    A]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM event
    INNER JOIN action
    ON action.numev = event.numev
    WHERE event.date <= '0000-00-00' AND event.date >= '0000-00-00'
    et

    B]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM action
    INNER JOIN event
    ON action.numev = event.numev
    WHERE event.date <= '0000-00-00' AND event.date >= '0000-00-00'
    si il y a plusieurs actions par event faut il A ou B où cela est identique ?
    Le résultat est par exemple dans le cas de la requête A un event ou le résultat de la jointure (c'est à dire une ligne avec les champs des deux tables ?)

    Alex

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 239
    Points : 12 866
    Points
    12 866
    Par défaut
    Bonjour,
    Les deux requêtes sont strictement équivalentes.
    D'ailleurs certains SGBD vont réécrire la requête en fonction du contenu des tables, et les deux pourraient avoir le même plan d'exécution.

    Tatayo.

  7. #7
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut
    Ok merci tatayo et Anduriel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requète sur tables liées
    Par VTLE34 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 27/06/2012, 10h17
  2. [AC-2007] Requête sur tables liées : pas de doublons
    Par junty dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 30/12/2011, 10h53
  3. [AC-2007] Requête ajout sur tables liées à partir de tables liées
    Par pierrequimousse dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 10/03/2010, 16h36
  4. [AC-2003] Requête très longue sur table liée AS/400
    Par cortek's dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 20/09/2009, 11h28
  5. Requête sur table liée non nulle
    Par MistyMan dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/02/2009, 12h44

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