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 :

Jointure sous mysql


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 78
    Points
    78
    Par défaut Jointure sous mysql
    Bonsoir,

    Voilà je travail sous MySQL et souhaite mettre à jour 2 tables via un formulaire.

    La table SITE contient 3 champs.
    id_site -> Id du site Auto-incrément
    site -> Trigramme du site
    SITELNG -> Description du site

    La table Ip_SITE possède 4 champs
    id_IP -> Id Auto-incrément
    id_site -> id correspondant à l’id du site de la table SITE
    IP -> début plage IP
    Ip_Fin -> Fin de la plage IP

    Via un formulaire je souhaite mettre à jours les champs site, SITELNG, IP, Ip_Fin en fonction de id_site. Est-ce possible par une jointure ?

    Car la actuellement je passe par 2 requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    update SITE set site = 'TST', SITELNG = 'Test update' where id_site = '68'
    update Ip_SITE set IP = '192.168.0.1', Ip_Fin = '192.168.0.254' where id_site = '68'

    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    Vous utilisez la bonne méthode.


    Veuillez juste à bien mettre ces deux requêtes SQL dans la même transaction afin que si la 2eme ou la 1ere plante que l'autre ne s’exécute pas.

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Puisque l'identifiant du site est un entier, inutile de mettre la valeur 68 entre apostrophes !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par punkoff Voir le message
    Bonjour,


    Vous utilisez la bonne méthode.


    Veuillez juste à bien mettre ces deux requêtes SQL dans la même transaction afin que si la 2eme ou la 1ere plante que l'autre ne s’exécute pas.
    Comment faire cela ?

    Merci pour vos réponses.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    En théorie, c'est possible avec une seule requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE SITE
    JOIN Ip_SITE 
    USING(id_site)
    SET site = 'TST', SITELNG = 'Test update', IP = '192.168.0.1', Ip_Fin = '192.168.0.254' 
    WHERE id_site=68;

  6. #6
    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 789
    Points
    30 789
    Par défaut
    La commande UPDATE...JOIN n'est pas reconnue par la plupart des SGBD...
    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.

Discussions similaires

  1. Jointure sous MySQL
    Par zebiloute dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2007, 18h49
  2. Problème jointure gauche qui ne passe plus sous MySQL 5
    Par OuiOui007 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/09/2006, 10h33
  3. Clé étrangère sous MySQL
    Par NPortmann dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 16/02/2004, 13h46
  4. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33

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