2017-11-10 13 views
0

私は同じ構造を持ち、時間とともに変化するレコードを持つ2つのmysqlテーブルを持っています。 表はT1T2であり、両方の列を持っている:2つのテーブル間の相互参照

Id, 
Name, 
Id2. 

Iが第二テーブル(Nameによって)T1.Id2に一致するレコードの参照IDを格納しています。 したがって、例えば、T1でIは、以下の値を有する:

id name  id2 
--------------------- 
1 mario  0 
2 vittorio 0 
3 andrea 2 
4 giuseppe 3 

およびT2で次の結果を持っている必要があり:

id name  id2 
-------------------- 
1 riccardo 0 
2 andrea  3 
3 giuseppe 4 
5 giacomo 0 

だから、私は2番目のテーブルに格納する必要があり、同じレコードの最初のテーブルのID。どこにT1があるT1.Id2>0私はT2.Id2に対応する必要がありますT1.id クエリのアイデア?

+2

あなたの質問を編集して、サンプル・データ、所望の結果を提供してください。 –

+1

'T1.Id2'から' T2.id'、 'T1.Id2'から' T2.Id2'のいずれであっても、これら2つのテーブルをどのように結合したいかは完全には明確ではありません。 –

+0

@ gordon Linoff:最初のテーブルには、2番目のテーブルの一致するレコードのIDを持つId2があります。私は同じことを2番目のテーブルに持っている必要があります:最初のテーブルの一致するレコードのID。だから、列id2の2番目のテーブルでは、私は最初のテーブルのIDを格納する必要があります。すべてのテーブルは独自のIDを保持していますが、もう一方のテーブルに対応するIDを持つカラムid2も持っています。 – Pier67

答えて

1

アップデートを試してみてください参加:

UPDATE table2 t2 
INNER JOIN table1 t1 
    ON t1.id2 = t2.id 
SET t2.Id2 = t1.id 
WHERE 
    t1.Id2 > 0; 
+0

ありがとうございますが、phpmyadminのこのクエリはシステムを停止しています(メッセージのロードは永遠に続く)。たぶんそれはループにつながるかもしれない、私は知らない。 – Pier67

+0

あなたのコメントを推測する前に、あなたの質問の下のコメントに注意を払って質問を明確にするようお願いしましたか? –

+0

私は例を提供しましたので、今私は必要なものを明確にする必要があります。 – Pier67

関連する問題