【问题标题】:ERROR joining tables to select data from both tables连接表以从两个表中选择数据时出错
【发布时间】:2015-03-15 01:07:07
【问题描述】:

我一直在尝试找出如何执行此特定 SQL 语句,但无济于事,因为它不断抛出相同的错误,并且在线文档没有太大帮助。

ERROR 1066: Not unique table/alias: 'users'

基本上我想做的是做一个排行榜,php和html都是为此而做的,只是数据库的SQL语句是麻烦的。我正在尝试从表 users,但 id 和 points 必须与 blog 表中的等效项匹配

到目前为止,我的代码是这样的:

SELECT users.fname, users.lname, MAX(points), users.id 
FROM users 
LEFT  JOIN blog ON users.id=blog.id 
               AND users.points=blog.points 
ORDER BY points DESC LIMIT 0 , 10

有什么办法可以纠正这个错误吗?

这是它的架构:http://sqlfiddle.com/#!9/58e77/1

【问题讨论】:

  • 您遇到了什么错误?我看到一个聚合函数(即MAX)但没有GROUP BY 关键字,这是必需的,所以我只能假设这可能是您所指的错误?
  • 对不起,我忘了写错误,我很傻:错误是:错误1066:不是唯一的表/别名:'users'
  • 你能提供表结构吗?如果您可以在 sqlfiddle.com 上进行操作,那将更有帮助。
  • 这适用于哪个 RDBMS?请添加标签以指定您使用的是mysqlpostgresqlsql-serveroracle 还是db2 - 或者完全是其他东西。

标签: mysql sql select left-join


【解决方案1】:

您确定没有另一个名为 users 且架构不同的表吗?而且您没有选择默认架构?

您可能需要执行以下操作:

SELECT users.fname, users.lname, MAX(points), users.id 
FROM dbo.users <-------------------------------------------- SEE HERE
LEFT  JOIN blog ON users.id=blog.id 
               AND users.points=blog.points 
ORDER BY points DESC LIMIT 0 , 10

【讨论】:

  • 我专门为此做了一个数据库来测试一下,只做了表usersblog,老实说,这是一个令人讨厌的家伙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
相关资源
最近更新 更多