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

HyperFileSQL Discussion :

[WD12] Requête UPDATE basée sur une jointure ?


Sujet :

HyperFileSQL

  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut [WD12] Requête UPDATE basée sur une jointure ?
    Bonjour,

    Savez-vous si HyperFile peut exécuter une requête UPDATE basée sur une jointure, comme d'autres SGBD savent le faire ?

    Exemple de requête:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE T_GAUCHE 
        INNER JOIN T_DROITE 
        ON T_GAUCHE.ID = T_DROITE.ID 
    SET T_GAUCHE.INFO_DESTINATION = T_DROITE.INFO_SOURCE;

    J'ai tenté d'exécuter cette requête.
    Je n'ai pas de message d'erreur à l'exécution, mais elle reste sans effet.

    Auriez-vous une idée pour m'aider ?
    Avez-vous déjà utilisé ce genre de requête avec HyperFile ?

    Merci !
    _

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    C'est étonnant qu'il n'y ait pas de message d'erreur car HyperFile ne sait pas gérer ça

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    hpascal merci de ton aide.

    Citation Envoyé par hpascal Voir le message
    C'est étonnant qu'il n'y ait pas de message d'erreur car HyperFile ne sait pas gérer ça
    J'ai pas mal cherché, mais je n'ai trouvé nul part une information spécifiant que cette syntaxe n'est pas supportée.

    D'où tiens-tu cette information ? Peut-être est-ce une expérience personnelle ?
    _

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Test effectué sur HF14:
    Code non supporté : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE T_GAUCHE 
        INNER JOIN T_DROITE 
        ON T_GAUCHE.ID = T_DROITE.ID 
    SET T_GAUCHE.INFO_DESTINATION = T_DROITE.INFO_SOURCE;

    Code supporté : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE T_GAUCHE 
        INNER JOIN T_DROITE 
        ON T_GAUCHE.ID = T_DROITE.ID 
    SET T_GAUCHE.INFO_DESTINATION = 'une chaine';

    Code très dangereux : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE T_GAUCHE 
        INNER JOIN T_DROITE 
        ON T_GAUCHE.ID = T_DROITE.ID 
    SET T_GAUCHE.INFO_DESTINATION = LEFT(T_DROITE.INFO_SOURCE, ;
    Très dangereux : ça efface les données de T_GAUCHE.INFO_DESTINATION.
    Les lignes sont bien mises à jour, mais pas avec les bonnes données

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Merci Bowen !

    Citation Envoyé par Bowen Voir le message
    Test effectué sur HF14:
    Code non supporté : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE T_GAUCHE 
        INNER JOIN T_DROITE 
        ON T_GAUCHE.ID = T_DROITE.ID 
    SET T_GAUCHE.INFO_DESTINATION = T_DROITE.INFO_SOURCE;
    ...
    Code très dangereux : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE T_GAUCHE 
        INNER JOIN T_DROITE 
        ON T_GAUCHE.ID = T_DROITE.ID 
    SET T_GAUCHE.INFO_DESTINATION = LEFT(T_DROITE.INFO_SOURCE, ;
    Très dangereux : ça efface les données de T_GAUCHE.INFO_DESTINATION.
    Les lignes sont bien mises à jour, mais pas avec les bonnes données
    Justement, le but de ma requête est de modifier les données de T_GAUCHE à partir des données de T_DROITE portant sur une valeur identique du champ ID.

    Donc je crois comprendre qu'il faut s'y prendre autrement.

    Encore merci à vous deux.
    _

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Citation Envoyé par =JBO= Voir le message
    Donc je crois comprendre qu'il faut s'y prendre autrement.
    à mon avis, un parcours d'une requête de toutes les lignes de T_DROITE qui sont dans T_GAUCHE et pour lesquelles la valeur de INFO_DESTINATION est différente, puis accès direct à T_GAUCHE

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Encore merci à toi Bowen.

    Je vois qu'aujourd'hui, tu fais des étincelles sur le forum.

    D'ailleurs, je suis bien content qu'il soit là notre forum !


    _

  8. #8
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    D'où tiens-tu cette information ? Peut-être est-ce une expérience personnelle ?
    Oui j'avais une requête de ce type dans une appli multi-cibles et ça ne marchait pas sur HyperFile (pas que sur HyperFile d'ailleurs)

    Par contre je viens d'essayer l'exemple de Bowen avec une valeur fixe, ça marche effectivement.
    ça permet au moins de filtrer la table à partir d'une jointure, c'est déjà ça ...

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

Discussions similaires

  1. [AC-2010] Problème à l'exécution d'une requête suppression basée sur une requête sélection
    Par Philippe1975 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 14/06/2013, 22h21
  2. Réaliser une requête croisée basée sur une Select
    Par sakia dans le forum VBA Access
    Réponses: 6
    Dernier message: 15/09/2010, 17h25
  3. Réponses: 7
    Dernier message: 21/04/2010, 19h27
  4. Requête CpteDom basée sur une requête
    Par Yoshi592 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/07/2007, 12h04
  5. Update sur une jointure
    Par nellynew dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/01/2007, 17h56

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