PhpMyAdminを使用してデータベースと2つのテーブルcustomer_fullとcustomer_changeを作成しました。私は正常に2つのテキストファイルから2つのテーブルを作成し、customer_fullは12902の行を含み、customer_changeは12947の行を持ち、各行は各顧客を識別するCUSTOMER_IDフィールドを持っています。 customer_changeテーブルには、customer_fullが持たないいくつかの新しいメンバーがあり、それらを取得したいと思います。PhpMyAdminを使用して簡単なSQLクエリを実行する際に問題が発生しました
タスク今私がする必要があるが、非常に一般的ですが、私は唯一のcustomer_changeテーブルに存在するがcustomer_fullテーブルに存在しない行を取得する必要があるので、私は次のクエリを書き、実行:
SELECT * FROM customer_change
LEFT JOIN customer_full ON customer_change.CUSTOMER_ID = customer_full.ID
WHERE customer_full.ID IS NULL
私はPhpMyAdminでクエリを送信した後、常に "http://localhost/phpmyadmin/import.phpの待機"に留まり、最終的にはタイムアウトエラーになります。私は
SELECT * FROM customer_change,customer_full
のようないくつかの単純なクエリを実行する場合 しかし、これは動作し、単に2つのテーブルのすべてのレコードを結合して、結果を返します。だから、私の専門家がデバッグを手伝ってくれるのかと疑問に思っています。私の質問には問題がありますか、PhpMyAdminの設定をもっと調べるべきでしょうか?あるいは、私の前の質問が失敗した他の理由があるかもしれませんか?
MySqlの自己学習を始めたばかりなので、これが簡単なのであればご容赦ください。すべての助けを前もって感謝します。
おかげ
は、このリンクで概説した手順を試して、実行します。実際にはLEFT_JOINからNOT INへの切り替えがさらに高速になるようです。 – Kevin
@Robert: 'xからyを選んでください。xは(選択...)ではありません。'は95%のはるかに遅いです。 'not in'リストが小さいので、テーブル間の不一致がほとんどないので、あなたのケースではより速いだけです。 'not in'リストが大きくなると、' left join ... xがヌルです.'よりもずっと遅くなります – Johan