2015-07-06 82 views

回答

2

你不应该使用关键字别名为outerinner,这只是一个混乱。也是exists

SELECT ship from Outcomes o 
WHERE EXISTS 
(
    select ship from Outcomes i 
    where i.ship = o.ship 
) 

您的查询也没有多大意义。您正在比较表格的所有列值与其自身。结果应该输出所有ship,你可以做

SELECT ship from Outcomes 

改为。

+0

这个查询的含义是什么? – Kaf

+1

@Kaf:我现在就在那个:) –

+0

另一种方法是“选择船从结果WHERE船不是NULL” – jarlh

-1

外部和内部保留关键字。您可以更好地利用其他别名或放在方括号中的名字[]

SELECT ship from Outcomes otr 
WHERE EXIST(select ship from Outcomes inr 
where inr.ship=otr.ship 
) 

SELECT ship from Outcomes [outer] 
WHERE EXIST(select ship from Outcomes [inner] 
where [inner].ship=[outer].ship 
) 

的squery bracktes只有工作,如果你使用的是SQL服务器

+2

方括号是产品特定的,并且没有指定dbms ...... – jarlh

+0

就像jarlh所建议的,而不是建议'[]'建议使用'''' – ughai

0
SELECT ship from Outcomes o1 
WHERE EXISTS(select ship from Outcomes o2 
      where o2.ship = o1.ship) 

外部和内部都是保留字。使用别的东西! (或双引号,例如"outer"。)另外,它是EXISTS,而不是EXIST。

相关问题