加入 3 个表时出现错误 1066
Posted
技术标签:
【中文标题】加入 3 个表时出现错误 1066【英文标题】:error 1066 while joining 3 tables 【发布时间】:2014-06-14 07:49:04 【问题描述】:现在有以下问题。我正在尝试使用以下查询从 3 个表中获取数据。
SELECT Message, Name
FROM message, users
LEFT JOIN user_message ON ID = Message_id
LEFT JOIN user_message ON ID = User_id
WHERE user_message.status = 1
LIMIT 0 , 30
在这里我收到错误 1066 我错过了什么?
【问题讨论】:
Why does this SQL code give error 1066 (Not unique table/alias: 'user')? 的可能重复项 你需要给表(和字段)起别名,否则 mysql 无法确定,例如 whichuser_message.status
你在说什么。此外,查询可能有一个 JOIN 太多。请参阅 Saharsh Shah 的回答。
【参考方案1】:
试试这个:
SELECT m.Message, u.Name
FROM message m
INNER JOIN user_message um ON m.ID = um.Message_id
INNER JOIN users u ON u.ID = um.User_id
WHERE um.status = 1
LIMIT 0, 30;
【讨论】:
【参考方案2】:您需要提供别名并像这样尝试
SELECT t1.Message, t2.Name
FROM message as t1
LEFT JOIN user_message as t2 ON t2.ID = t1.Message_id
LEFT JOIN users as t3. ON t3.ID = t2.User_id
WHERE t3.status = 1
LIMIT 0 , 30
【讨论】:
以上是关于加入 3 个表时出现错误 1066的主要内容,如果未能解决你的问题,请参考以下文章
在 codeigniter 中加入超过 2 个数据库表错误:1066