嗨我在我的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
答案 0 :(得分:2)
这是一个起点。 V1,V2,V3是别名,如果你甚至都需要它们。
您需要在引用表之前引入表(不是在第一个选择行中,而是在选择行之后的连接中)。
换句话说,您可以在选择列列表中引用它们。但是如果它们没有被引入,你就不能在连接中引用它们。
在将其带入
之前,您无法引用GEBEAUTE
有两种将其带入
的方法from
XXX子句(这是您提供的第一个表格)join
XXX子句(带来表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_TYP
或GEBEAUTE
以下是它的简单说明
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
尚未带入。
答案 1 :(得分:1)
您应该在join中使用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