私は200k行以上の2つのテーブルを持っています。私は彼らがどの線であるのか把握しようとしています。そして、各テーブルは異なるデータベースにあります。 MySQLでどうしたらいいですか?MySQLの異なるデータベースの別のテーブルと比較して、テーブルから欠落した行を取得するにはどうすればよいですか?
SELECT t1.*
FROM db1.tb1 t1
LEFT JOIN db2.tb2 ON tb1.col_13 = tb2.col_13
WHERE tb2.col_13 IS NULL;
が、それはFOREVER取っている:
は、私はこれを試してみました。EDIT
col_13は、この文句を言わない仕事すべての重複ですので。 問題は私がテーブル間のcommenプライマリキーを見つけることはできません、それらの間のプライマリキーはdatetimeですが、ほぼ同じですが、各テーブルにデータを挿入するために使用される異なるスクリプトのため、たとえば、「2015-09-01 00:00:11」と「2015-09-01 00:00:12」は同じ行ですが、丸めのために秒が異なります。
私はこれがうまくいくと思いますが、それ以上の時間を要する場合は、より多くの参加と条件に拡張したいと思うかもしれません。 col_13に重複がある場合、これはそれらのすべての1つに参加する予定です。たとえば、両方のテーブルに重複した値がある場合、異なる組み合わせから4つの結果行が得られます –
プライマリキー列に結合することをお勧めします.1つは一意のID、タイムスタンプ、または等価で埋められます。 –
問題はcol_13がすべて重複していることです。その理由は長い時間がかかり、動作しません。問題は丸めのために共有する列(datetime)が時々differnetであることです。 1つは時間として00:01:12を持ち、もう1つは時間として00:01:11を持ちます。しかし、彼らは同じでなければなりません。どうすればこの問題を解決できますか? –