MySQL错误:字段列表中的列'accountStatus'不明确

时间:2013-09-23 20:51:51

标签: c# mysql

我在这里有这段代码,我有一个模棱两可的错误

if (Database.Query(ref reader, "SELECT fromID, toID, status, accountStatus, name FROM friends LEFT JOIN phpbb_users ON ( (user_id = toID) OR (user_id = fromID) ) AND (user_id != " + userID + ") WHERE (fromID=" + userID + " OR toID=" + userID + ")") == false)
{
     return null;
}

任何帮助?

4 个答案:

答案 0 :(得分:5)

由于两个表都包含列名accountStatus,因此优化程序会对它来自哪个表accountStatus感到困惑。要消除歧义错误,请在SELECT子句中的列名称前添加一个表名。

要么

friends.accountStatus 

phpbb_users.accountStatus

答案 1 :(得分:1)

在列名称

之前指定表名
table.accountstatus

答案 2 :(得分:0)

这个有趣的消息可能告诉您,您的'accountStatus'列存在于您选择的多个表中,因此它不知道要从哪个表中选择。使用表名称在选择列表中添加列名称。

答案 3 :(得分:0)

两个表都包含一个具有相同名称的列。您应该帮助解析器识别您想要的表列。一种简单的方法是使用别名

"SELECT f.fromID, f.toID, f.status, u.accountStatus, u.name " + 
"FROM friends f LEFT JOIN phpbb_users u ON .......