我試圖將此查詢轉換爲沒有內部聯接的等價的一個。沒有INNER JOIN的同一查詢?
select c.name, c.area, ai.sum_area
from
country as c
inner join (
select sum(i.area) as sum_area, gi.country
from
island i
inner join
geo_island gi on (i.name = gi.island)
group by gi.country
) as ai on (c.code = ai.country)
where (c.area * 0.99) <= ai.sum_area;
我想學習如何做,我覺得真unconfortable這個說法,但往往是我找到編寫查詢的唯一途徑。
編輯: 我很感激,而不是把-1,有人告訴我這個問題有什麼問題。
你爲什麼想要消除INNER JOIN?你想在這裏解決什麼問題? –
我在這裏查詢沒有問題。 這是正確的。 我只想找到另一種方式來編寫相同的東西,而不使用INNER JOIN。 – user3004162
如果刪除聯接,它將不會是同一個事物 - 它真的不清楚*爲什麼*您想要消除聯接?如果您使用兩個數據標記問題,那麼知道您正在使用哪個數據庫也很方便。 –