1

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

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

4 回答 4

5

accountStatus优化器对它来自哪个表感到困惑,因为两个表都包含列名accountStatusSELECT要消除歧义错误,请在子句中的列名之前添加一个表名。

任何一个

friends.accountStatus 

或者

phpbb_users.accountStatus
于 2013-09-23T20:53:34.487 回答
1

在列名之前指定表名

table.accountstatus
于 2013-09-23T20:53:22.670 回答
0

模棱两可的消息可能会告诉您,您的“accountStatus”列存在于您选择的多个表中,因此它不知道要从哪个表中选择。在选择列表中的列名前加上表名。

于 2013-09-23T20:54:50.340 回答
0

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

"SELECT f.fromID, f.toID, f.status, u.accountStatus, u.name " + 
"FROM friends f LEFT JOIN phpbb_users u ON .......
于 2013-09-23T20:56:34.270 回答