Мне нужно выполнить итерацию внутри подзапроса, чтобы отобразить динамические столбцы в основном запросе выбора.
Я пытался применить динамическую сводную таблицу в соответствии с этой ссылкой: Динамически создавать столбцы из строк в MySQL
Но мне нужен более понятный способ, поскольку следующий пост-пример также является подзапросом, используемым для возврата нескольких условий столбца, которые мне также нужно использовать.
Я хочу динамически выбрать tax_amount для каждого tax_id и присвоить ему имя в соответствии с его идентификатором.
select x.invoice_item_id,
IFNULL(MAX(CASE WHEN (x.tax_id = 1) THEN x.tax_amount ELSE NULL END), NULL) AS tax_id_1,
IFNULL(MAX(CASE WHEN (x.tax_id = 2) THEN x.tax_amount ELSE NULL END), NULL) AS tax_id_2,
IFNULL(MAX(CASE WHEN (x.tax_id = 3) THEN x.tax_amount ELSE NULL END), NULL) AS tax_id_3
# .
# .
# .
# for each existing tax from tax table results
from (select t.id from taxes t where t.deleted_at is null) as tax,
invoice_items ii
left join invoice_item_tax x on ii.id = x.invoice_item_id
where ii.deleted_at is null
and x.deleted_at is null
group by invoice_item_id;