This should yield the same result and uses EXISTS:
select countrycode, name as country, language
from country y
where exists (select 'fish'
from countrylanguage x
where x.countrycode = y.code
and x.language = 'German')
order by country;
With an EXISTS subquery, if the subquery returns anything, the condition passes, and if it returns no rows, it fails, it doesn't matter what you put in the select statement (notice I typed in 'fish'). But that subquery will still return a row in any situation where the country has a row on countrylanguage where the language is german, and so for the rows of country that are applicable to you, the condition passes, and so it filters the same way.