Получение нескольких разных значений из объединенной таблицы

Я могу't найти хороший способ сделать запрос без нескольких подзапросов. Я могу'т реструктурировать таблицы, так чтоне вариант. Вот'С настройкой:

person:
person_id
person_want_id,
person_need_id,
person_ability_id,
person_willingness_id

person_status_types:
status_type_id
status_type_name

Каждый из id 's, которые лично имеют тип person_status_types. То, что мне нужно вытащить, это status_type_name для каждого из id 'с личностью.

Таким образом, выражение return будет выглядеть так:

person_id | person_want_name | person_need_name | person_ability_name | person_willingness_name

Прямо сейчас яЯ просто делаю 4 подзапроса, но должен быть более чистый способ сделать это. Кроме того, если вы хотите отметить лучшую структуру базы данных, ям открыты для дальнейшего производства базы данных.