Mysql 如何在同一明细表上重复使用内部联接
我试图使用两次内部连接语句来获取同一个细节表中的引用值Mysql 如何在同一明细表上重复使用内部联接,mysql,Mysql,我试图使用两次内部连接语句来获取同一个细节表中的引用值 Master table: bags_tbl ID ... bagA bagB 1 ... 121 122 2 ... 123 124 3 ... 125 126 Detail table: fruit_tbl ID ... fruit ... 121 strawbery 122 apple
Master table: bags_tbl
ID ... bagA bagB
1 ... 121 122
2 ... 123 124
3 ... 125 126
Detail table: fruit_tbl
ID ... fruit ...
121 strawbery
122 apple
123 orange
124 raspberry
125 pear
126 pineapple
SELECT
bags_tbl.ID,
bags_tbl.A,
bags_tbl.B,
fruit_tbl.fruit AS bagA_fruit,
fruit_tbl.fruit AS bagB_fruit
FROM
bags_tbl
Inner Join fruit_tbl ON bags_tbl.bagA = fruit_tbl.fruit
Inner Join fruit_tbl ON bags_tbl.bagB = fruit_tbl.fruit
此抛出错误:没有唯一的表/别名。。。
如何使用SQL语句获取主表的文本表示
非常感谢试试这个。您需要为每个联接授予唯一的别名,以便SQL知道您在SELECT子句中引用的是哪个联接
SELECT
bags_tbl.ID,
bags_tbl.A,
bags_tbl.B,
A.fruit AS bagA_fruit,
B.fruit AS bagB_fruit
FROM bags_tbl
Inner Join fruit_tbl A ON bags_tbl.bagA = A.id
Inner Join fruit_tbl B ON bags_tbl.bagB = B.id
SELECT
bags_tbl.ID,
bags_tbl.A,
bags_tbl.B,
fruitA.fruit AS bagA_fruit,
fruitB.fruit AS bagB_fruit
FROM
bags_tbl
JOIN fruit_tbl fruitA ON bags_tbl.bagA = fruitA.id
JOIN fruit_tbl fruitB ON bags_tbl.bagB = fruitB.id
试试这个。您需要为每个联接授予唯一的别名,以便SQL知道您在SELECT子句中引用的是哪个联接
SELECT
bags_tbl.ID,
bags_tbl.A,
bags_tbl.B,
fruitA.fruit AS bagA_fruit,
fruitB.fruit AS bagB_fruit
FROM
bags_tbl
JOIN fruit_tbl fruitA ON bags_tbl.bagA = fruitA.id
JOIN fruit_tbl fruitB ON bags_tbl.bagB = fruitB.id
正确的答案,但当使用别名> <代码>时,有点奇怪,当混淆列名时,在混淆表名时将其省略。但是,当使用别名> >代码>别名列名时,有点奇怪,但在混淆表名时将其省略。