Как сделать выборку из таблицы и развернуть в строку?
Pivot можно сделать следующим образом: (с одним join-ом):
select 
	i.name,
	min(ru) filter (where fi.id = 218) key1,
	min(ru) filter (where fi.id = 219) key2,
	min(ru) filter (where fi.id = 220) key3
from items i
left join item_fields fi on i.id = fi.item_id and fi.id in (218, 219, 220)
group by i.name, item_id

Проверить SQL запрос онлайн

Результат:
+=======+========+========+========+
| name  | key1   | key2   | key3   |
+=======+========+========+========+
| Item1 | Поле 1 | Поле 2 | Поле 3 |
+-------+--------+--------+--------+
Насколько понял, вам нужно попробовать реализовать "Pivot Table", но в PGSQL этой функции по умолчанию нет (я ей пользовался в MSSQL как встроенной). Если погуглить есть реализации этой функции на PGSQL через функцию "crosstab". Посмотрите, если устроит можете один раз организовать функцию и пользовать в подобных случаях. Но насколько это актуально конкретно для вас (может у вас всего 3 поля и имеет смысл просто запросом как в вашем примере реализовать) решать вам.
Про языки, чтобы выбрать один указанный, оптимальнее использовать "coalesce( t.en, t.ru, t,ko)"

UPD: т.к. имена полей у вас находятся в промежуточной таблице, если вы хотите чтобы значения "coalesce( t.en, t.ru, t,ko)" были в заголовках колонок, скорее всего придётся использовать "Динамический Pivot table" он несколько сложнее в организации, но производительней с точки зрения использования данных. Если же вас устроит "Fieidid" как заголовок колонки, можно воспользоваться обычным Pivot table.

В MSSQL это выглядело бы примерно так:
Select ItemId as ItemId,
[fieldid1], [fieldid2], [fieldid3], [fieldid4], [fieldid5] 
From
(Select 
	items.id as ItemId,
	Coalesce(itemfields.en,itemfields.ru,itemfields.ko) as FieldName,
	itemfields.fieldid as fieldid,
	fields.key as value
From
	from items as items
	left join item_fields as item_fields on items.id = item_fields.item_id
		left join fields as fields On item_fields.fieldid = fields.id) SourceTable
pivot
(
Max(value) for fieldid in ([fieldid1], [fieldid2], [fieldid3], [fieldid4], [fieldid5] )
) as PivotTable;