2012-04-26 478 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重复列名“身份证”。

我敢肯定,这是一个小事,但我无法找到我做错了什么,我非常感谢一些帮助。

谢谢你的时间!

亚历

+0

该声明目前尚未完成。它不以'SELECT','CREATE',...开始,所以很难回答这个问题。 – Romain 2012-04-26 14:44:31

+0

Hi Romain, 对不起,在复制和粘贴期间错过了SELECT。我知道,这不是很有帮助。 谢谢。 Alex – Alexmbarton 2012-04-26 15:41:26

+0

'{$ __ cakeID __ $}'有什么价值?您是否将此语句用作CREATE TABLE语句的一部分? – Romain 2012-04-27 07:46:42

回答

1

你不能用名称相同的别名FROM comments As CommentGROUP BY Comment.uploads_id) Comment,两个表例如使用Comment_AComment_B

+0

喜托马斯 谢谢你的建议。我已经按照您的建议将所有注释重命名为不同的东西,但我仍然得到重复的列名称。 如果我删除内部联接它一切正常,但我无法进一步缩小它。 谢谢, 亚历克斯 – Alexmbarton 2012-04-26 15:40:15

+0

在INNER JOIN中,你也有重复的别名'INNER JOIN(SELECT CommentUpload.id,CommentUpload.uuid FROM uploads AS CommentUpload)CommentUpload',你还更新了这个吗? – sbczk 2012-04-26 15:43:39

+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 JOIN( \t \t \t \t \t \t \t SELECT CommentUpload_B.id,CommentUpload_B。UUID \t \t \t \t \t \t \t FROM上传AS CommentUpload_B \t \t \t \t \t \t \t)CommentUpload_A ON CommentUpload_A.id = Comment_B.uploads_id \t \t \t \t \t \t GROUP BY Comment_B.uploads_id \t \t \t \t \t) Comment_A ON Comment_A.id = ItemGroup.co mments_id' – Alexmbarton 2012-04-26 16:19:45