下面的代码为我提供了非唯一表/别名:'presentations'

我已经阅读了几篇关于此的文章,并且我很确定解决方案是为表使用别名。我只是不明白如何创建别名或应将别名添加到何处。

有人可以帮我解释一下吗?

谢谢!

SELECT categories.name, categories.sub_name, parts.name
FROM categories
INNER JOIN presentations
ON categories.id=presentations.category
INNER JOIN presentations
ON parts.id=presentations.parts
WHERE presentations.id=5;

最佳答案

您要连接同一张表2次,因此需要提供唯一的别名。但是看起来您正在寻找parts表,因此需要加入该表

SELECT
categories.name,
categories.sub_name,
parts.name
FROM categories
INNER JOIN presentations ON categories.id=presentations.category
INNER JOIN parts ON parts.id=presentations.parts
WHERE presentations.id=5;


为了获得更好的可读性,您总是可以给一些简短的别名命名为

select
c.name,
c.sub_name,
p.name as parts_name
from categories c
join presentations pr on pr.category = c.id
join parts p on p.id = pr.parts
where pr.id = 5

关于mysql - MySQL中的“非唯一表/别名”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24570209/

10-10 16:52