字段列表与4个表的连接不明确

时间:2014-07-18 07:15:13

标签: mysql sql join

非常困惑,为什么会发生这种情况,因为我将特定的表命名为essub,这是他们抱怨的(我认为这就是你的方式解决这个特殊问题。)

我得到了: users submissions_comments email_settings submissions

此查询为我提供了我想要的内容,但我现在希望在我的email_settingssubmissions表格中加入此内容,这两个表格都有user_id

SELECT user_id,
       submission_id,
       comment,
       users.*,
FROM submissions_comments
INNER JOIN
  (SELECT submissions_comments.parent_id
   FROM submissions_comments
   WHERE id = 224) x ON submissions_comments.id = x.parent_id
LEFT JOIN users ON submissions_comments.user_id = users.id

输出:

       user_id: 35
 submission_id: 12
       comment: fdasadfsdadfs
            id: 35
         email: bobcobb@gmail.com
      username: bobcobb
          name: Robert Cobb
         about:
       created: 2014-03-21 20:24:57
    last_login: 2014-07-06 23:21:43
public_profile: 1
  queued_photo: 0

但是,如果我尝试加入另一个表(引用user_id),我会Column 'user_id' in field list is ambiguous

SELECT user_id,
       submission_id,
       comment,
       users.*,
       es.*,
       sub.*
FROM submissions_comments
INNER JOIN
  (SELECT submissions_comments.parent_id
   FROM submissions_comments
   WHERE id = 224) x ON submissions_comments.id = x.parent_id
LEFT JOIN users ON submissions_comments.user_id = users.id
LEFT JOIN submissions sub ON x.parent_id = sub.user_id
LEFT JOIN email_settings es ON x.parent_id = es.user_id;

您可以告诉我在内部选择返回的user_id上加入所有这些内容(例如x.parent_id)。

2 个答案:

答案 0 :(得分:2)

您必须将别名添加到列名称:

SELECT sub.user_id,...

答案 1 :(得分:0)

SELECT submissions_comments.user_id,
       submissions_comments.submission_id,
       submissions_comments.comment,
       users.*,
       es.*,
       sub.*
FROM submissions_comments
INNER JOIN
  (SELECT submissions_comments.parent_id
   FROM submissions_comments
   WHERE id = 224) x ON submissions_comments.id = x.parent_id
LEFT JOIN users ON submissions_comments.user_id = users.id
LEFT JOIN submissions sub ON x.parent_id = sub.user_id
LEFT JOIN email_settings es ON x.parent_id = es.user_id;

您还需要定义您在选择部分上引用的user_id。