【问题标题】:#1066 - Not unique table/alias:#1066 - 不是唯一的表/别名:
【发布时间】:2013-10-25 12:33:55
【问题描述】:

你能帮帮我吗?我有这个 SQL 查询:

SELECT l.url 
FROM (b INNER JOIN links ON b.parent_id = l.id) 
INNER JOIN b ON l.id = b.link 
WHERE l.url LIKE 'http://domain%' LIMIT 0, 30

它以某种方式说

#1066 - Not unique table/alias: b

【问题讨论】:

  • 这是实际的脚本吗?我没有看到您在哪里将 l 定义为别名。

标签: mysql sql


【解决方案1】:

您似乎从同一张表中选择了两次。这些事件中的每一个都需要自己的别名:

SELECT
    l.url
FROM
    b as b1 /* <-- */
    INNER JOIN links as l
      ON b1.parent_id = l.id
    INNER JOIN b as b2 /* <-- */
      ON l.id = b2.link
WHERE l.url LIKE 'http://domain%' LIMIT 0, 30

请注意,我还为links 表添加了缺少的别名l

【讨论】:

  • You seem to be selecting from the same table twice今天帮了我:)
【解决方案2】:
SELECT l.url from b inner join links as l on l.id = l.parent_id
inner join b as b1 on b1.link = l.id
where l.url like 'http:domain%' limit 0,30

在这个查询中,我们先连接两个表 b 和第二个链接,然后将 b 作为 b1 别名 ok

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2020-03-06
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多