【问题标题】:#1066 - Not unique table/alias: ? What can I do?#1066 - 不是唯一的表/别名:?我能做些什么?
【发布时间】:2016-03-03 01:27:26
【问题描述】:

嗨,我的 sql 语句中有一个问题:(我收到错误消息:

#1066 - 不是唯一的表/别名:'VERANSTALTUNG'

这是我的代码:

select VERANSTALTUNG.v_name, V_TYP.typ, RAUM.raumname, GEBEAUTE.gebeaute_name From VERANSTALTUNG
JOIN VERANSTALTUNG on VERANSTALTUNG.v_typ_id=V_TYP.v_typ_id
JOIN VERANSTALTUNG on VERANSTALTUNG.raum_id=RAUM.raum_id
JOIN RAUM on RAUM.gebeaute_id=GEBEAUTE.gebeaute_id

【问题讨论】:

  • From VERANSTALTUNG a JOIN VERANSTALTUNG b -- 并相应地编辑其他位
  • 整个事情都搞砸了。你没有带桌子或 2

标签: mysql sql select join inner-join


【解决方案1】:

这是一个起点。 V1、V2、V3 是别名,如果您甚至都需要它们。

您需要在引用它们之前引入表(不是在第一个选择行中,而是在选择行之后的连接中)。

换句话说,您可以在选择列列表中引用它们。但是如果没有引入,就不能在连接中引用它们。

引入GEBEAUTE 之前,您不能引用它

有两种方法引入

  • fromXXX 子句(这是您引入的第一个可用表)
  • joinXXX 子句(引入表 2 及以后)

.

select VERANSTALTUNG.v_name, V_TYP.typ, RAUM.raumname, GEBEAUTE.gebeaute_name
From VERANSTALTUNG V1
JOIN VERANSTALTUNG V2 on V2. something
JOIN VERANSTALTUNG V3 on V3. something
JOIN RAUM on RAUM.gebeaute_id=GEBEAUTE.gebeaute_id -- error here still, see below

注意你还没有引入V_TYPGEBEAUTE

真是一团糟。不再是一团糟,而是逐渐走向幸福。


这是一个简单的说明

line1:   select A.col1,B.col2,C.col3
line2:   from table1 A
line3:   join table2 B on B.blahblah=A.something
line4:   join table3 C on C.typ_id=D.month_id

直到第 4 行看起来不错。因为表 D 还没有引入

【讨论】:

    【解决方案2】:

    您应该在连接中为VERANSTALTUNG 表使用另一个别名:

        select VERANSTALTUNG.v_name, V_TYP.typ, RAUM.raumname, GEBEAUTE.gebeaute_name 
        From VERANSTALTUNG
        JOIN VERANSTALTUNG as t1 on t1.v_typ_id=V_TYP.v_typ_id
        JOIN VERANSTALTUNG as t2 on t2.raum_id=RAUM.raum_id
        JOIN RAUM on RAUM.gebeaute_id=GEBEAUTE.gebeaute_id
    

    【讨论】:

    • #1054 - “字段列表”中的未知列“V_TYP.typ”
    • @Tarasov 你没有 V_TYP、GEBEAUTE 表,所以你需要根据你的需要加入它们
    猜你喜欢
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2020-03-06
    相关资源
    最近更新 更多