1

次のMySQLステートメントを機能させるのに苦労しています。

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'が重複しています。

小さなことだと思いますが、何が間違っているのかわからないので、助けていただければ幸いです。

お時間をいただきありがとうございます!

アレックス

4

1 に答える 1

1

同じエイリアスFROM comments As CommentGROUP BY Comment.uploads_id) Comment、を使用Comment_Aして2つのテーブルに名前を付けることはできませんComment_B

于 2012-04-26T14:47:42.960 に答える