2016-06-16 6 views
0

私は3つのテーブルt1,t2およびt3を持っています。MySQL:IF t1.row1 = t1.row2 INSERT INTO t2

表1には、「リスティング」とIDを使用してリスティングに関連付けられたイメージが含まれています。彼らは両方のtype

id: 1 
postId: NULL 
type: listing 

id: 2 
postId: NULL 
type: listing 

id: 3 
postId: 1 
type: image 

id: 4 
postId: 1 
type: image 

id: 5 
postId: 2 
type: image 

表を見ることで識別され2も、このようになりますこれは、リストと画像の関連付けを含んでいますt1.idマッチt1.postIdが、私は新しい行を追加したい

id: 1 
listingId: 1 
type: imageasoc 
imgId: 3 

id: 2 
listingId: 1 
type: imageasoc 
imgId: 4 

id: 3 
listingId: 2 
type: imageasoc 
imgId: 5 

t2が含まれ、t1.postId行のidと、文字列 'imageasoc'(上記の例のように)が含まれます。

私は以下のコードを持っていますが、私はそれがINSERT INTOステートメントに回す必要がある、私が試してみましたが、構文/フォーマットは常に間違っている:(

UPDATE t2 
LEFT JOIN 
     t1 
ON  t1.id = t1.postId 
SET  t2.listingId = t1.id, t2.type = 'imageasoc', t2.imgId = id of t1.postID 
WHERE t1.type = 'image' 

私は、十分なおかげで自分自身を説明してきましたね!

+0

最初にあなたは私があなたの質問を理解してないと思う –

+0

リスティングや画像を分離する必要があります。これらのテーブルの関係は何ですか? t3はどこですか?あなたは何をしようとしているのですか? – Tin

答えて

1

私が正しく理解していれば、あなたはINSERT ... SELECT文でこれを行うことができます。

INSERT INTO t2(listingId, type, imgId) 
SELECT t1.id, 'imageasoc', t1.postId 
FROM t1 
WHERE t1.id = t1.postId 
AND t1.type = 'image'; 
+0

Andrewさん、ありがとうございます。これは質問で尋ねられたことを達成していませんが(私の悪いことは、私自身を含めて誰もが複雑に思っていたようです)、私は今このステートメントを使用して、回答としてマークすることはまだ可能ですか? –

+0

私はそれがとても良いことだと言います。 –

関連する問題