非常困惑,为什么会发生这种情况,因为我将特定的表命名为es
和sub
,这是他们抱怨的(我认为这就是你的方式解决这个特殊问题。)
我得到了:
users
submissions_comments
email_settings
submissions
表
此查询为我提供了我想要的内容,但我现在希望在我的email_settings
和submissions
表格中加入此内容,这两个表格都有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
)。
答案 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。