2014-07-10 3 views
0

Qu'est-ce que j'ai maintenant est un deux tables dans MySQL DB, une chose s'est produite lors de la conversion des tables, et maintenant j'ai un problème avec l'encodage. Je veux corriger cela en joignant une table à une autre, selon les identifiants, et ignorer la première colonne de texte de la table en la remplaçant par la colonne de texte de l'autre table.MySQL joindre deux tables qui ont les mêmes lignes et remplacer la colonne spécifique

Les deux tables ont "topic_id" et "threadid" qui utilise les mêmes numéros pour identifier le nom de thread. Ils ont également "title" et "topic_title". Il y a un certain nombre d'autres colonnes, demandez si vous en aurez besoin et j'en afficherai d'autres.

Donc, est-il possible de vérifier pendant "topic_id == threadid", et de remplacer "topic_title" par "title" en utilisant la requête MySQL ou non?

+0

Voulez-vous modifier les données dans le tableau en permanence ou vous voulez juste une requête ('select') qui renvoie ces données. –

+0

Je souhaite changer les données de manière permanente. – Dazvolt

Répondre

1
UPDATE phpbbf_topics t1 
JOIN vb_thread t2 ON t1.topic_id = t2.threadId 
SET t1.topic_title = t2.title 

Quelque chose comme ça devrait le faire.

+0

J'ai essayé votre réponse, mais SQL m'a donné cette erreur "# 1064 - Vous avez une erreur dans votre syntaxe SQL, consultez le manuel correspondant à votre version du serveur MySQL pour la bonne syntaxe à utiliser 'FROM phpbbf_topics t1 JOIN vb_thread t2 = ON t1.topic_id t2.threadId » à la ligne 3" nous avons utilisé la requête suivante "UPDATE t1 SET t1.topic_title = t1.title dE phpbbf_topics t1 t2 INSCRIPTION sUR vb_thread t1.topic_id = t2.threadId" – Dazvolt

+0

Mis à jour ma réponse, devrait être ok maintenant –

+0

Ouais ça a bien fonctionné, mais il fallait changer la dernière chose "t1.title" à "t2.title" =) – Dazvolt

1

oui, il est possible d'essayer cette requête

Update tbl1 A SET A.topic_title = B.title 
LEFT JOIN tbl2 B ON A.topic_id = B.threadid 
Questions connexes