2012-04-26 9 views
1

次のMySQL文を使用するのは難しいです。MySQLサブクエリのエラー:SQLSTATE [42S21]:列がすでに存在します:1060重複する列名 'id'

SELECT ItemGroup.users_id,ItemGroup.comments_id,ItemGroup.uploads_id,ItemGroup.posts_id, 
       Comment.id,Comment.uploads_id, 
       CommentUpload.id, 
       Upload.id, 
       Post.id 
       FROM items AS ItemGroup 
       LEFT JOIN (
        SELECT Comment.id, Comment.uploads_id, CommentUpload.id, CommentUpload.uuid 
        FROM comments As Comment 
        INNER JOIN (
         SELECT CommentUpload.id, CommentUpload.uuid 
         FROM uploads AS CommentUpload 
         ) CommentUpload ON CommentUpload.id = Comment.uploads_id 
        GROUP BY Comment.uploads_id 
       ) Comment ON Comment.id = ItemGroup.comments_id 
       LEFT JOIN (
        SELECT Upload.id 
        FROM uploads AS Upload 
        ) Upload ON Upload.id = ItemGroup.uploads_id 
       LEFT JOIN (
        SELECT Post.id 
        FROM posts AS Post 
        ) Post ON Post.id = ItemGroup.posts_id 
       WHERE ItemGroup.users_id = {$__cakeID__$} 
       AND (
       Comment.id IS NOT NULL 
       OR Upload.id IS NOT NULL 
       OR Post.id IS NOT NULL 
       ) 
       LIMIT 0 , 300 

私がコメントに関連したアップロードを見つけようとしているが、それはSQLSTATE [42S21]を投げている:列はすでに存在している:1060重複した列名「ID」を。

私はそれが何か小さいと確信していますが、私は間違っていることを見つけることができず、本当に助けに感謝します。

ありがとうございました!

アレックスは

+0

この文は現在完全ではありません。それは 'SELECT'、' CREATE'、...で始まらないので、質問に答えるのは難しいです。 – Romain

+0

Hi Romain、 申し訳ありませんが、コピーアンドペースト中にSELECTを逃しました。あまり役に立たない、私は知っている。 ありがとうございます。 アレックス – Alexmbarton

+0

'{$ __ cakeID __ $}'にはどんな価値がありますか?この文をCREATE TABLE文の一部として使用していますか? – Romain

答えて

1

あなたはカントの名前と同じ別名FROM comments As CommentGROUP BY Comment.uploads_id) Comment、持つ2つのテーブルには、例えばComment_AComment_Bを使用しています。

+0

こんにちはトーマス アドバイスありがとうございます。私はあなたが示唆したように、すべてのコメントを別のものに変更しましたが、重複した列名を取得しています。 Inner joinを削除した場合はすべて動作しますが、それ以上は絞り込むことはできません。 ありがとう、 アレックス – Alexmbarton

+0

INNER JOINには、「INNER JOIN(SELECT CommentUpload.id、CommentUpload.uuid FROM uploads AS CommentUpload)もコピーされています。これは更新しましたか? – sbczk

+0

はい、そうですね。 'LEFT JOIN( \t \t \t \t \t \t SELECT Comment_B.id、Comment_B.uploads_id、CommentUpload_A.id \t \t \t \t \t \t Comment_B としてコメント\t \t \t \t \t \t INNER FROM:これは、現在のコードでありますJOIN( \t \t \t \t \t \t \t SELECT CommentUpload_B.id、CommentUpload_B。UUID CommentUpload_B \t \t \t \t \t \t \t)\t \t \t \t \t Comment_B.uploads_id BY CommentUpload_A ON CommentUpload_A.id = Comment_B.uploads_id \t \t \t \t \t \t GROUP ASアップロードFROM \t \t \t \t \t \t \t) Comment_A ON Comment_A.id = ItemGroup.co mments_id' – Alexmbarton

関連する問題