为啥这个 sql #1066 - Not unique table/alias: 'categories'?

Posted

技术标签:

【中文标题】为啥这个 sql #1066 - Not unique table/alias: \'categories\'?【英文标题】:Why does this sql #1066 - Not unique table/alias: 'categories'?为什么这个 sql #1066 - Not unique table/alias: 'categories'? 【发布时间】:2017-10-12 22:18:37 【问题描述】:
SELECT
    categories.id, categories.name
AS
    parentName
FROM
    categories
INNER JOIN
    categories
ON
    categories.parent = categories.id
ORDER BY
    id
DESC

我想在同一个表(类别)中内连接两列。

【问题讨论】:

Why does this SQL code give error 1066 (Not unique table/alias: 'user')?的可能重复 嗨。这是一个常见问题解答。下次从谷歌开始。 【参考方案1】:

那是因为你要加入同一张表,它需要一个表别名以避免混淆,如下图所示

FROM
    categories
INNER JOIN
    categories

改成下面(这里c1、c2是表别名)

FROM
    categories c1
INNER JOIN
    categories c2 
ON
    c1.parent = c2.id

并相应地调整 SELECT 子句

【讨论】:

以上是关于为啥这个 sql #1066 - Not unique table/alias: 'categories'?的主要内容,如果未能解决你的问题,请参考以下文章

为啥错误 #1066 - 不是唯一的表/别名:'cat_rapoarte'

错误代码 1066 Not unique table/alias 'c'

为啥 SQL 中无法避免双重嵌套的 NOT EXISTS 语句

为啥这个 IF NOT EXISTS 语句不起作用?

为啥在 SQL 查询中 NOT IN 比 IN 慢得多

为啥NOT IN比NOT EXISTS效率差