Я думаю, что вы хотите агрегации или объединения:
SELECT MAX(CASE WHEN language_code = 'de' THEN url END) as url_de,
MAX(CASE WHEN language_code = 'en' THEN url END) as url_en
FROM url_table
WHERE id = 60 AND language_code IN ('de', 'en')
Это будет работать для произвольного числа id
с, если вы используете group by
:
SELECT id,
MAX(CASE WHEN language_code = 'de' THEN url END) as url_de,
MAX(CASE WHEN language_code = 'en' THEN url END) as url_en
FROM url_table
WHERE language_code IN ('de', 'en')
GROUP BY id;
Вытакже можно использовать самосоединение:
select de.url as url_de, en.url as url_en
from url_table de join
url_table en
on de.id = en.id and
de.language_code = 'de' and
en.language_code = 'en'
where de.id = 60;
Однако это будет сложно, если у вас нет строк для обоих языков, поэтому я рекомендую подход group by
.