2009-06-01 40 views
0

非常に複雑なダンプを解析する必要があります。私はPythonで構文解析を行った。解析されたデータは膨大な量であるため、データベース(SQL)にフィードする必要があります。私もこれをやった。今は、SQLに存在するデータを比較する必要があります。PythonによるSQLのデータの比較

実際には、第1ダンプのデータと第2ダンプのデータを比較する必要があります。どちらのダンプも同じフィールド(属性)を持ちますが、フィールドの値は異なる場合があります。だから私はこの変化を検出しなければならない。このために、私は比較を行う必要があります。しかし、私はフロントエンドとしてPythonを使ってこれをどうやってやるのか考えていません。

+0

あなたはこれまでどんなコードを持っていますか?この "比較"を行うためにあなたが始めたコードを投稿してください。 –

答えて

0

なぜSQLで「変更変更」しないのですか?ような何か:

select foo.data1, foo.data2 from foo where foo.id = 'dump1' 
minus 
select foo.data1, foo.data2 from foo where foo.id = 'dump2' 
+1

データベースエンジンの中には、この機能を「MINUS」ではなく「EXCEPT」というキーワードで実装しているものがあります。 –

1

あなたがMINUSEXCEPTを持っていない場合、これはトリック

SELECT MAX(table), data1, data2 
FROM (
    SELECT 'foo1' AS table, foo1.data1, foo1.data2 FROM foo1 
    UNION ALL 
    SELECT 'foo2' AS table, foo2.data1, foo2.data2 FROM foo2 
) AS X 
GROUP BY data1, data2 
HAVING COUNT(*) = 1 
ORDER BY data1, data2 

UNION/GROUP BYを使用して、すべての非一致する行が表示されますされ、また、そこにある、私は一般的に持っています左および右および内部結合および金銭的閾値(または閾値パーセンテージ)およびサブセット基準と比較して、より複雑なテーブルを比較することもできる汎用のテーブル比較SPです。