2016-06-22 1 views
1

2つの異なるmysqlクエリを実行する必要があります。主な問題は、前のデータを使用するのに2番目のデータが必要だが、データを選択するのを妨げないことです。2つのクエリが同時にデータを共有しています

SELECT accounts.id, username, password, proxy.ip, proxy.port 
    FROM accounts 
    LEFT JOIN proxy ON proxy.id = accounts.proxy_id 
    ORDER BY RAND() 
    LIMIT 1; 

INSERT INTO task 
    (taskID, account_id, transaction_id) 
    VALUES ("*Insert Pregenerated Number*", accounts.id, *Insert Pregenerated Number*) 

あなたはそれがaccounts.IDが、私はちょうどのために照会以前のアカウントのものであると述べている私は必要な前のクエリから見ることができるように:私は私の現在の組み合わせのクエリについて説明したが、ここでするためのハード。しかし、私はこれを一度にやり、最初の選択で上記のデータを私のプログラムに出力したい。誰でも助けてくれますか?

答えて

3

どうしてですか?INSERT .. SELECT

INSERT INTO task 
    (taskID, account_id, transaction_id) 
SELECT "*Insert Pregenerated Number*",accounts.id,"*Insert Pregenerated Number*" 
FROM accounts 
LEFT JOIN proxy ON proxy.id = accounts.proxy_id 
ORDER BY RAND() 
LIMIT 1; 

または変数としてそれらを格納します。

DECLARE myvar DOUBLE; 
    ... 
SELECT accounts.id, username, password, proxy.ip, proxy.port 
INTO @myvar,@myvar2,.... 
FROM accounts 
LEFT JOIN proxy ON proxy.id = accounts.proxy_id 
ORDER BY RAND() 
LIMIT 1; 

そして、それらを使用しています。

EDIT:代わりにあなたは、この行を含む一時テーブルを作成することができ、そして何倍として、あなたが好きな広告を、それを使用します。

CREATE TABLE tmp_table AS(
SELECT accounts.id, username, password, proxy.ip, proxy.port 
FROM accounts 
LEFT JOIN proxy ON proxy.id = accounts.proxy_id 
ORDER BY RAND() 
LIMIT 1); 
+0

働くかもしれないが、私は値を取得する必要がありますaccounts.id 、ユーザ名、パスワード、proxy.ip、proxy.portが1行目として出力されます。 – Danny

+0

@Danny更新情報 – sagi

関連する問題