Je souhaite fusionner des données. Voici mes tables MySQL. Je veux utiliser Python pour traverser une liste des deux Listes (une avec dupe = 'x' et l'autre avec des dupes nulles).Comment comparer 2 listes et les fusionner en Python/MySQL?
Ceci est un exemple de données. Les données réelles sont gigantesques.
Par exemple:
a b c d e f key dupe
--------------------
1 d c f k l 1 x
2 g h j 1
3 i h u u 2
4 u r t 2 x
A partir de la table d'exemple ci-dessus, la sortie désirée est:
a b c d e f key dupe
--------------------
2 g c h k j 1
3 i r h u u 2
Ce que j'ai jusqu'à présent:
import string, os, sys
import MySQLdb
from EncryptedFile import EncryptedFile
enc = EncryptedFile(os.getenv("HOME") + '/.py-encrypted-file')
user = enc.getValue("user")
pw = enc.getValue("pw")
db = MySQLdb.connect(host="127.0.0.1", user=user, passwd=pw,db=user)
cursor = db.cursor()
cursor2 = db.cursor()
cursor.execute("select * from delThisTable where dupe is null")
cursor2.execute("select * from delThisTable where dupe is not null")
result = cursor.fetchall()
result2 = cursor2.fetchall()
for each record
for each field
perform the comparison and perform the necessary updates
### How do I compare the record with same key value and update the original row null field value with the non-null value from the duplicate? Please fill this void...
cursor.close()
cursor2.close()
db.close()
Merci les gars!
ne peuvent pas comprendre le problème. Voulez-vous obtenir l'algorythme, ou la réalisation dans les termes d'un cadre spécifique? En fait, vous avez juste besoin de parcourir les champs de curseur et les éléments 'coalesce'. Pouvez-vous exécuter SQL normal dans ce cas? Parce que si vous le pouvez, la requête est triviale. –
Il s'agit de données de test simples et simples. En réalité, il y a quelques milliers de lignes et quelques centaines de colonnes, d'où cette approche. Merci. – ThinkCode
mise à jour delthistable t ensemble ta = coalesce (dup.a, ta), tb = coalesce (dup.b, tb) ... à partir de (select * from delthistable où dupe = 'x') dup où t.dupe <> 'x' et t.key = dup.key ------------------------------------ -------------------------- supprimer de delthistable où dupe <> 'x' –