2017-05-18 55 views
0

嗨,我收到错误'每个派生表必须有自己的别名'我能做些什么?SQL派生表。 Easy SQL

我的问题是:谁在欧洲冠军联赛中从来没有玩过从德国队 展团队ID和姓名

UEFA Champions league = 1 
Cid= Competions ID 
Tid = Team ID 


SELECT teams.TID, teams.name from(
SELECT Tid1 FROM(
(SELECT tid1,cid FROM matches 
    WHERE tid1 IN (SELECT tid FROM teams WHERE country='Germany') 
        UNION 
SELECT tid2,cid FROM matches 
    WHERE tid2 IN (SELECT tid FROM teams WHERE country='Germany')) 
)WHERE cid <> (SELECT cid FROM competitions WHERE cid='1')) 
INNER JOIN matches ON tid1=team.tid; 

我试图寻找其他衍生soulutions但我不能让跟我一起工作。 ..

+0

你可以从字面上复制/粘贴错误到谷歌并得到答案...... – dfundako

+1

子查询需要一个名字:'(选择Y X)作为some_alias_name' - 除非在'IN()'条款。 –

+1

ANSI SQL没有这样的要求。你使用哪个dbms? – jarlh

回答

1

它看起来像它要求你给你在查询中创建的表别名。尝试这个。

EFA Champions league = 1 
Cid= Competions ID 
Tid = Team ID 

SELECT teams.TID, teams.name from(
SELECT Tid1 FROM(
(SELECT tid1,cid FROM matches 
    WHERE tid1 IN (SELECT tid FROM teams WHERE country='Germany') 
        UNION 
SELECT tid2,cid FROM matches 
    WHERE tid2 IN (SELECT tid FROM teams WHERE country='Germany'))ALIAS1 
)WHERE cid <> (SELECT cid FROM competitions WHERE cid='1')) ALIAS2 
INNER JOIN matches ON tid1=team.tid;