2015-07-06 92 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。

相關問題