運用用と分析用の 2 つのデータベースがあります。
分析データベースは、オペレーション データベースと 1 対 1 で同じではありませんが、非常によく似ています。
ここで、アーカイブ ファイル (csv) を分析データベースにロードしました (以前は空でした)。
分析に古いデータがあり、運用データベースに現在のデータがあります。
新しくロードされたレコードの一部がデータベースに既に存在するかどうかを確認するクエリを作成したいと考えています。
これを調べる方法はありますか?
編集:
まず初めに申し訳ありません。私のデータベースを見た後、間違いを犯しました。2 つの異なるデータベースを比較する必要はありません。phpmyadmin を介してオペレーション データベースをコピーしているときに、現在のデータを分析データベースにロードするのを忘れていました。したがって、古いレコードの一部がデータベースに既に存在するかどうかにかかわらず、1 つのデータベースで 2 つのテーブルを比較するだけで済みます。
私の最初のアイデアは/でした:
SELECT *
FROM orderlinesold t1
LEFT JOIN orderlines t2 on t1.orderid = t2.orderid;
しかし、そのクエリを実行した後、結果として穴の行が得られますが、これは不可能です --> 間違ったクエリです。
古いデータの一部がまだ新しいデータに残っているかどうかを確認するにはどうすればよいですか?
PS: 表はリンクとしてコメントにあります。
- 編集:
わかりました私はそれを解決しました。ちょっとした比較クエリでした:
SELECT *
FROM ordersold t1
INNER JOIN orders t2 ON t1.orderid = t2.orderid
LIMIT 100000000;
また:
SELECT *
FROM orderlinesold t1
LEFT JOIN orderlines t2 ON t1.orderid = t2.orderid
WHERE t2.orderid IS NOT NULL
LIMIT 100000000;
どちらも正しい結果を破棄します。
それでも感謝します。この投稿は閉じることができます。