Если универсальный запрос составлять, который не зависит от состава свойств, то он будет многострочный, нужно собирать свойства в массив в той среде откуда обращались к СУБД:
select
ar.id,
ar.name,
ar.date,
ar.text,
ap.property_id,
p.name as property_name, --поскольку у вас есть в базе реализовано универсальное хранение свойств, то почему бы не вывести имя свойства из справочника?
ap.value as property_value
from articles as ar
left join articles_property as ap on ap.article_id = ar.id
and ap.property_id in (/* перечисляем все необходимые свойства */)
left join property as p on ap.property_id = p.id -- справочник названий свойств
Другой вариант запроса дает конкретные значения свойств, и довольно плоскую выборку, не требующую постобработки (одна строка - это строго одна статья). Но такой запрос не универсален по набору свойств.
select
ar.id,
ar.name,
ar.date,
ar.text,
(select value
from articles_property as ap
where ap.article_id = ar.id
and ap.property_id = 10) as author
from articles as ar