繁体   English   中英

尝试使用内部联接将 3 个表联接在一起时出现错误 1052

[英]Getting Error 1052 When trying to join 3 tables together with inner join

我在使用内部连接将 3 个表连接在一起时遇到问题。 表格如下。

mysql> SELECT * FROM tbldvdactors;

演员 名称 名称
1 瓦尔 基尔默
2 约翰尼 德普
3 约翰 克里斯
4 迈克尔 基顿
5 罗伊 沙伊德

mysql> SELECT * FROM tbldvdtitles;

ASIN 标题 价格
6304711905 墓碑 1.95
783229526 恐惧和厌恶在拉斯维加斯 8.46
B00005O3VC 巨蟒与圣杯 8.88
B001CCIRG4 甲虫汁 9.60
B007STBUHI 7.62

mysql> SELECT * FROM tblrelantionships;

ASIN 演员
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;

在第一行,您应该指定从中选择字段 ANSI 的表。 试试这个:

 mysql> SELECT tblrelantionships.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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM