2013-05-18 80 views
4

我試圖SQLZoo的SELECT within SELECT tutorial找到與GDP的國家大於一組國家

哪些國家的問題有5生產總值比歐洲任何國家更大? [只給名字。]

這是我的解決方案,這是不正確的,但我不明白爲什麼。

SELECT name 
    FROM world 
WHERE gdp > ALL (SELECT gdp FROM world WHERE continent ='Europe') 

我在做什麼不正確?

+0

這工作正常鉻

選擇名稱。 –

+0

有什麼不對?使用你的答案,我得到了一張開心的臉。 http://i.stack.imgur.com/ssdan.jpg –

+0

它繼續爲我作爲「行數太少」 – kreativred

回答

2
SELECT name 
    FROM world 
WHERE gdp > (SELECT MAX(gdp) FROM world WHERE continent = 'Europe') 

使用MAX聚合函數返回子查詢中最高的GDP,這是您想要與外部查詢進行比較的結果。

8
select name,gdp from world x where gdp > all (select gdp from world y where continent = "europe" and gdp > 0) 

你,因爲在空值未知結果的情況下,缺少一個NULL值檢查將是牽強,見參考文獻:當你因此測試查詢http://dev.mysql.com/doc/refman/5.5/en/all-subqueries.html

世界表可能有空值,一些歐洲國家最好放置一個檢查來避免空值。

+0

這工作正常,謝謝〜 – wings

+0

@wings歡迎。 –

+0

我可以寫'gdp <> NULL'而不是'gdp> 0'嗎? –

0
select name from world 
where gdp > ALL(select gdp from world 
where continent = 'Europe' 
    and gdp is not null) 
0

我正在經歷的問題,連續,由於某種原因,德國是在我的腦海從以前的問題。所以我在查詢中得到了這個結果,並得到了正確的答案。大聲笑嘗試一下。我使用來自世界 地方GDP> ALL(來自世界 選擇GDP,其中name = '德國' 和人口<> 0)