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 :

Requête INNER JOIN ?


Sujet :

Requêtes MySQL

  1. #1
    Membre très actif
    Profil pro
    Webmaster
    Inscrit en
    Octobre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 125
    Par défaut Requête INNER JOIN ?
    Bonjour à tous.

    Avant de vous exposer mon problème, voici les tables avec lesquelles je travaille (enfin j'apprends le Sql...)

    balance
    Compte, Libelle, Solde

    avec Compte int(6), Libelle varchar(20), Solde decimal(10)

    CodeMouvement
    Compte, Debit, Credit

    avec Compte int(6), Debit varchar(2), Credit varchar(2).

    en php, je modifie ma table balance pour ajouter un champ : 'Mouvement' ce qui donne :

    balance
    Compte, Libelle, Solde, Mouvement

    avec Compte int(6), Libelle varchar(20), Solde decimal(10), Mouvement varchar(2).

    C'est là que mon problème se pose. J'aimerai remplir la colonne Mouvement avec la table CodeMouvement. Mes connaissances deviennent limitées.

    Dans ma table balance, j'ai un compte par exemple 151256.

    1) J'aimerai aller vérifier dans la table CodeMouvement sa présence. S'il n'est pas présent alors, on prend le CodeMouvement.Compte le plus proche inférieur. Dans notre exemple, le compte 151256 n'est pas présent dans la table. Le code mouvement inférieur le plus proche est le 150000.

    2) Si le solde de ce compte est négatif, alors on prend la valeur Debit, sinon, si le compte a un solde positif, alors on prend la valeur Credit

    3) on insére la valeur trouvée dans le champ 'Mouvement' de la table 'balance'

    J'ai essayé de comprendre les INNER JOIN mais rien à faire, c'est compliqué pour moi... et même avec le livre de Christian SOUTOU, je n'y arrive pas... quelqu'un peut il m'aider ? est-ce réalisable ?

    J'espère que oui...

    D'avance merci pour vos réponses,

    Thibaut

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Dans l'énoncé de ton problème, tu utilises deux tables Balance avec une structure différente
    En tout cas voici une requête qui normalement te permettra de récupérer la bonne valeur, à toi de construire la requête INSERT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT CodeMouvement.Compte, IF(Balance.Solde > 0, CodeMouvement.Credit, CodeMouvement.Debit) as valeur
    FROM CodeMouvement
    INNER JOIN Balance on CodeMouvement.Compte = Balance.Compte
    WHERE CodeMouvement.Compte <= 151256
    ORDER BY CodeMouvement.Compte
    LIMIT 1

  3. #3
    Membre très actif
    Profil pro
    Webmaster
    Inscrit en
    Octobre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 125
    Par défaut
    ah bah voilà !

    Je viens d'apprendre une nouvelle chose : l'utilisation des IF... je ne connaissais pas ! et j'ai enfin compris les inner join... Merci à vous... grand merci !

  4. #4
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Y'a pas de quoi, si la requête fonctionne pense au tag

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

Discussions similaires

  1. Requête + inner join+ update
    Par zorro13 dans le forum SQL
    Réponses: 4
    Dernier message: 28/10/2011, 16h26
  2. Problème requête INNER JOIN
    Par punisher999 dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/12/2009, 09h51
  3. requête INNER JOIN
    Par Jasmine80 dans le forum Requêtes
    Réponses: 7
    Dernier message: 06/03/2009, 11h00
  4. Réponses: 6
    Dernier message: 26/09/2008, 10h04
  5. requête sql avec clause INNER JOIN
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/08/2005, 15h47

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