我正在使用 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/