2017-04-03 13 views
-1

MySQLの初心者は、回答を検索しましたが、複数のデータベースの質問はすべて私が後になったことではないテーブルの結合についてのようです。同じクエリで2つのデータベースを使用するMySQL。

新しいデータベースでは、古いデータベースのテーブルを複製しましたが、ほとんどの列はすべてではありません。

お客様名に「Co.」がある古いデータベースから得意先番号を取得する必要があります。彼らの名前で。これで約14行ほどの約80行が返されます

次に、それらの顧客番号を持つ2番目のデータベース内のすべての注文を削除する必要があります。

これはサブクエリで可能ですか?それが今私が立ち往生している場所です。

ありがとうございます。

答えて

0

あなたは1つのクエリに複数のデータベースを扱うことができます:

例:

SELECT database1.col1、database1 FROM database2.col2 。 options,database2options WHERE database1option_name =「SORT_ORDER」

0

はあなたがすでに別のテーブルのフィールドProblemproblem_log)で同定されている重複を排除する必要があるからSOスレッド(threads_table)のテーブルを持っていると言います。

DELETE FROM `threads_table` 
    WHERE `thread_ID` IN 
     (SELECT `Thread_ID` from `problem_log_table` 
     WHERE `Problem`='Duplicate'); 

編集

追加する: は、ここで私が正しくあなたのニーズを理解していた場合、それを行うために一つの方法です。 (ところで、私はそれがテーブルを2つの異なるデータベースを作業の追加複雑さを離れたと仮定しました。)

DELETE FROM tbl2 
    WHERE tbl2.customer_num IN 
     (SELECT tbl1.customer_num from `tbl1` 
     WHERE tbl1.customer_name LIKE '%Co.%'); 
+0

だから、例えばdb1.tb1は、列customer_num、CUSTOMER_NAME、COL3、COL4を持っているし、その後db2.tbl2ではあり列customer_num、order_num、col3、col4。私はtbl2にないので、customer_nameがLIKE '%Co.%'のdb1からcustomer_numを取得する必要があります。次に、db2からdb2.tbl2.customer_num = db1.tbl1.customer_numのすべての行を削除する必要があります。私は本当にここで迷っています。私が理解していることさえ確信していません。 –

関連する問題