mysql - 尝试将 3 个表与内部连接连接在一起时出现错误 1052
问题描述
我无法使用内部连接将 3 个表连接在一起。表格如下。
mysql>SELECT * FROM tbldvdactors;
演员表 | 名称 | 名称 |
---|---|---|
1 | 瓦尔 | 基尔默 |
2 | 约翰尼 | 德普 |
3 | 约翰 | 克莱斯 |
4 | 迈克尔 | 基顿 |
5 | 罗伊 | 谢德 |
mysql>SELECT * FROM tbldvdtitles;
亚信 | 标题 | 价格 |
---|---|---|
6304711905 | 墓碑 | 1.95 |
783229526 | 恐惧和厌恶在拉斯维加斯 | 8.46 |
B00005O3VC | 巨蟒与圣杯 | 8.88 |
B001CCIRG4 | 甲虫汁 | 9.60 |
B007STBUHI | 颚 | 7.62 |
mysql>SELECT * FROM tblrelantionships;
亚信 | 演员表 |
---|---|
6304711905 | 1 |
783229526 | 2 |
B0000503VC | 3 |
B001CCIRG4 | 4 |
B007STBUHI | 5 |
这是我正在使用的命令
mysql> SELECT ASIN, Title, ACTOR_ID, FName, LName, Price
-> FROM tblrelantionships
-> INNER JOIN tbldvdtitles
-> ON tblrelantionships.ASIN = tbldvdtitles.ASIN
-> INNER JOIN tbldvdactors
-> ON tblrelantionships.ACTORID = tbldvdactors.ACTORID;
ERROR 1052 (23000): Column 'ASIN' in field list is ambiguous
提前感谢你们可以提供的任何帮助。
解决方案
ASIN 列在多个表中定义,因此您必须显式选择一个。
恕我直言,使用表别名使查询更短且更易于阅读。
SELECT
tt.ASIN, tt.Title, ta.ACTOR_ID, ta.FName, ta.LName, tt.Price
FROM tblrelantionships tr
INNER JOIN tbldvdtitles tt
ON tr.ASIN = tt.ASIN
INNER JOIN tbldvdactors ta
ON tr.ACTORID = ta.ACTORID;
推荐阅读
- postgresql - 为什么在 UPDATE 的 FROM 子句中没有给出连接谓词时 postgres 不抛出错误
- git - 用另一个分支找到第一个父母的最后一个共同祖先
- document - 如何在 OASIS API for Filenet 中提供子文档类
- laravel - 尝试到达 HTTP 请求时,Laravel 路由被破坏
- android - 屏幕关闭时从 BroadcastReceiver 打开 Activity
- python - pyinstaller 或任何 pip 包命令都不起作用
- angular - PrimeNG p-tree 过滤器问题 -(不显示子节点,我们必须手动打开树才能看到过滤结果)
- awk - 仅使用 mawk 替换 2 个字符串之间出现的字符
- java - 如何为自定义 Maven 私有仓库指定凭据
- php - 碳日期格式正确没有在 Laravel 中格式化?