Mysql 字段列表在与4个表的联接中不明确
我很困惑为什么会发生这种情况,因为我将它抱怨的特定表命名为Mysql 字段列表在与4个表的联接中不明确,mysql,sql,join,Mysql,Sql,Join,我很困惑为什么会发生这种情况,因为我将它抱怨的特定表命名为es和sub(我认为这就是解决这个特定问题的方法) 我有: 用户提交意见电子邮件设置提交意见表格 此查询提供了我想要的内容,但我现在想在我的电子邮件设置和提交表中加入此查询,这两个表都有用户id SELECT user_id, submission_id, comment, users.*, FROM submissions_comments INNER JOIN (SELECT submis
es
和sub
(我认为这就是解决这个特定问题的方法)
我有:
用户
提交意见
电子邮件设置
提交意见
表格
此查询提供了我想要的内容,但我现在想在我的电子邮件设置
和提交
表中加入此查询,这两个表都有用户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
但是,如果我尝试加入另一个表(其中引用了用户id
),则字段列表中的列“用户id”是不明确的
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;
正如您所知,我将在从内部选择返回的用户id(例如,
x.parent\u id
)上加入所有这些内容。您必须将别名添加到列名:
SELECT sub.user_id,...
您还需要定义在所选部件上引用的用户id。在查询中使用字段名不是比
*
更容易混淆吗?您应该在询问之前尝试搜索。通过在列名sub.user\u id之前添加表名,可以轻松解决“字段列表不明确”的问题
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;