mysql - 错误代码 : 1066. 不唯一的表/别名: 'File'

标签 mysql

我正在使用 MySQL,我正在尝试连接两个表中的列并执行此查询

我正在尝试像这样排列列

  • 交易.交易ID
  • 交易.交易日期
  • 交易金额
  • 交易描述.描述
  • 文件.开始日期
  • 文件.结束日期
  • 文件.文件名
SELECT Transaction.TransactionID, Transaction.TransactionDate, 
    Transaction.Amount, TransactionDescription.Description, 
    File.StartDate, File.EndDate, File.Filename
FROM Transaction
INNER JOIN TransactionDescription ON  TransactionDescription.Description = TransactionDescription.Description
INNER JOIN File ON  File.StartDate = File.StartDate
INNER JOIN File ON  File.EndDate = File.EndDate
INNER JOIN File ON  File.Filename = File.Filename
;

但是当执行查询时我收到此错误

Error Code: 1066. Not unique table/alias: 'File'

为什么会出现这个错误?

最佳答案

由于您的查询中有三个 File 表,MySQL 无法知道当您说 File 时您指的是哪一个。您通常会修复分配不同的表别名的问题。但感觉很奇怪,你实际上需要加入同一张表三次。我的印象是您只需要一次,例如:

SELECT Transaction.TransactionID, Transaction.TransactionDate, Transaction.Amount, TransactionDescription.Description
,File.StartDate, File.EndDate, File.Filename
FROM Transaction
INNER JOIN TransactionDescription ON  TransactionDescription.Description = TransactionDescription.Description
INNER JOIN File ON  File.StartDate = File.StartDate
    AND File.EndDate = File.EndDate
    AND File.Filename = File.Filename

关于mysql - 错误代码 : 1066. 不唯一的表/别名: 'File',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999552/

相关文章:

php - 在特定日期之间打开和关闭页面

mysql - SQL,如何获取与搜索查询匹配的项目的父项目

mysql - 使用 MySql 获取特定日期

mysql - SQL计算最近7天支付的平均金额

php - 获取一周前/期间/一周后的生日

sql - MySQL - 需要帮助来找出多个连接

mysql - 更新数据表与另一个表进行比较

mysql - MySQL 中何时使用单引号、双引号和反引号

mysql - MySQL 中 Decimal 字段的数据截断异常

java - 从Java将变量插入SQL查询