Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 13h48   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 1
Points : 1
Par défaut Update un poil compliqué

Bonjour,

J'ai une requête un peu particulière à faire sur ma base MYSQL, et je n'y arrive pas.

J'ai deux tables qui vont servir:
tpmessage:
-ID
-IDAppelant
-IDUtilisateur

tpappelant:
-ID
-Nom
-Modif

Je veux mettre à jour la table tpmessage, pour que tous les messages d'un utilisateur précis dont l'appelant a une date de modif au 01/01/2010 voient leur IDAppelant changé pour un appelant avec le même nom mais une date de modif au 09/09/2010.

En gros, je me retrouve avec une importation qui a doublé la plupart des appelants de cet utilisateur, et je veut faire pointer les messages vers les nouveaux appelants, pour que je puisse supprimer les anciens sans problème.
Je sais que c'est un truc à base d'INNER JOIN, mais je ne m'en sors pas.

Merci d'avance aux courageux qui pourront m'aider!

Benoit
Icebird99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 14h39   #2
Invité de passage
 
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 1
Points : 1
Bon, j'ai finalement réussi à résoudre ma requête, qui s'avère plutôt simple une fois pigé le truc:

Code :
1
2
3
4
5
6
7
8
UPDATE tpmessage AS a 
       INNER JOIN tpappelants AS b 
         ON a.`idappelant` = b.`id` 
       INNER JOIN tpappelants AS c 
         ON b.nom = c.`nom` 
SET    a.`idappelant` = c.id 
WHERE  a.idutilisateur = 457 
       AND c.`modif` = '2011-09-09 11:00'
Icebird99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h21.


 
 
 
 
Partenaires

Hébergement Web