прикрепил фото с задачей. помогите написать запрос что бы можно было динамически создать столбец и вывести всю информация в одну строку
Конкретно для представленной задачи, если мы знаем, что FieldID = 12 - это dolzhnost, а 13 - Company:
SELECT
t1.id, t1.name,
(SELECT t2.value FROM table2 t2 WHERE t2.FieldID=12 AND t2.id = t1.id) AS
dolzhnost,
(SELECT t3.value FROM table2 t3 WHERE t3.FieldID=13 AND t3.id = t1.id) AS
Company
FROM table1 t1 WHERE t1.id = 1;
Для других id запрос работать не будет. У вас в table2 должен быть однозначный идентификатор типа значения dolzhnost, Company и других, если они есть.
Хотя если у вас в table2 только два значения, один должность, второе - компания, при этом известно, что FieldID компании всегда больше FieldID должности, можно использовать вот такой запрос для любых id:
SELECT
t1.id, t1.name,
(SELECT t2.value FROM table2 t2 WHERE t2.id = t1.id ORDER BY t2.FieldID ASC LIMIT 1) AS
dolzhnost,
(SELECT t3.value FROM table2 t3 WHERE t3.id = t1.id ORDER BY t3.FieldID DESC LIMIT 1) AS
Company
FROM table1 t1 WHERE t1.id = 1;
Но всё равно структура БД весьма странна и может приводить к неоднозначностям.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники