2016-09-23 6 views
0

私の問題は、テーブルをループして別のテーブルから情報を抽出する方法です。MySQLのループでテーブルをループしてwhereステートメントに適用する

私はテーブルを持っている - 470件のレコードを持つX:

A  B  C 
111 12 18 
121 21 29 
127 37 101 

私は次のクエリ書きたい:私はその構文を使用しているので、

create or replace view NEW as 
For j = 1-3  
Select * from Y 
    where imei = X.A(j) and id > X.B(j) and id < X.C(j) 

謝罪を、私はMathWorks社のMATLABプログラマです私が欲しいものを説明するために上に。どのように私はこれをMySqlで行うことができますか?私はループを参照しましたが、主に同じテーブル内でループします。私は別のテーブルをループし、異なるテーブルのwhereステートメントでそれらの基準を使用する必要があります。

+0

SQLにループがありません。 – Barmar

+0

'X.A(j)'とはどういう意味ですか?テーブル 'X 'の' j'行目の 'A'の値を意味しますか? MySQLテーブルには行番号がありません。 – Barmar

答えて

0

テーブルから3行を取得するには、サブクエリでLIMIT 3を使用します。別の表の関連する行を取得するには、JOINを使用します。

CREATE OR REPLACE VIEW new AS 
SELECT Y.* 
FROM Y 
JOIN (SELECT * 
     FROM X 
     LIMIT 3) AS X ON Y.ime1 = X.a AND Y.id > X.b AND Y.id < X.c 

LIMIT 3は、予測可能な結果を​​生み出すようにするには、サブクエリでORDER BY句を持つ必要があります。それ以外の場合は、Xから3行の任意のセットを選択します。

関連する問題