【发布时间】:2013-10-28 18:51:54
【问题描述】:
我是 SQL 的新手,我目前在新学徒期间经常使用它,并且我正在尝试在家里更好地掌握它。目前我有一个简单的 PHP 脚本,用于创建数据库用户,现在想根据用户 ID 从多个表中提取数据,但出现此错误;
ERROR 1066: Not unique table/alias: 'users'
SQL Statement:
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_userinfo`(IN uName VARCHAR(255))
BEGIN
SELECT id,password,salt,email FROM controlpanel.users
LEFT JOIN controlpanel.users ON users.id=servers.ServerID
WHERE username = uName;
END
我目前正在使用 MySQL。 我正在尝试从表 'servers' 中获取列 ServerID、Port、IP、NodeID,其中 'users' 表中的列 'OwnerID' = 'id'。
【问题讨论】:
-
LEFT JOIN的两边都在controlpanel.users上。看起来你的意思是两者之一是servers。 -
您将加入
users到users而不给它一个别名。但是,您的意思似乎是servers。 -
对,我明白了,所以应该是 LEFT JOIN controlpanel.servers ON users.id=servers.ServerID ?
-
@JamesTrotter server.ServierID 似乎不太可能对应于 users.id 列。为什么还要加入到服务器表上?
-
你是正确的,users.id 应该链接到 server.OwnerID,你是正确的我应该加入他们。不久后我发布了这个,并用一个新的存储过程替换了它,以获取所有具有提供的用户 ID 的服务器。