是:不是唯一的表::现在:#1054 - 未知列 - 无法理解为什么?

时间:2010-06-11 08:47:46

标签: mysql mysql-error-1054 mysql-error-1066

我正在尝试在MySQL中加入一些表,但我似乎得到一个错误说:#1066 - 不唯一的表/别名:'calendar_jobs'

我真的希望它从cal_events,2个用户位和job表中的目标col中选择所有内容,但如果没有任何作业则变为“null”。正确的加入似乎符合要求,但不起作用!任何人都可以帮忙!?

更新

感谢您对上一个查询的帮助,我现在要做到这一点:

SELECT calendar_events.* , calendar_users.doctorOrNurse, calendar_users.passportName, calendar_jobs.destination
FROM `calendar_events` , `calendar_users`
RIGHT JOIN calendar_jobs ON calendar_events.jobID = calendar_jobs.jobID
WHERE `start` >= 0
AND calendar_users.userID = calendar_events.userID;

但我现在收到一条错误说:#1054 - 'on clause'中的未知栏'calendar_events.jobID'

这次是什么时候!?

再次感谢!

3 个答案:

答案 0 :(得分:2)

您不应在FROM子句中使用calendar_jobs,因为您已在JOIN中指定了它。试试这个:

SELECT calendar_events.* , calendar_users.doctorOrNurse, calendar_users.passportName, calendar_jobs.destination
FROM `calendar_events` , `calendar_users`
RIGHT JOIN calendar_jobs ON calendar_events.jobID = calendar_jobs.jobID
WHERE `start` >=0
AND calendar_users.userID = calendar_events.userID

回答更新:

所有证据似乎都表明该表中不存在该列:)。

试试这个:

SELECT calendar_events.* , calendar_users.doctorOrNurse, calendar_users.passportName, calendar_jobs.destination
FROM `calendar_users`, `calendar_events`
RIGHT JOIN calendar_jobs ON calendar_events.jobID = calendar_jobs.jobID
WHERE `start` >=0
AND calendar_users.userID = calendar_events.userID

已切换FROM中表的顺序,因为您将事件与作业连接。

答案 1 :(得分:1)

运行此:show create table calendar_events;,并在此处发布结果。

我们需要看表结构来回答你的第二个问题。

答案 2 :(得分:0)

您的查询中列出了calendar_jobs两次。

一旦在第二行,一次在RIGHT JOIN声明中。