使用 MySQL 查询动态转置

Transpose dynamically using MySQL queries

我在使用 MySQL 基于连接将某些 table 行转置为列时遇到了一些问题。我知道这是一个数据库问题,但也许有人可以给我一个替代解决方案。

给定以下两个 tables:

发票

我需要输出这个table:

基本上,在第一个 table 上,我保存了不同发票的信息以及应显示每张发票总计的列的 ID。在第二个 table 上,我正在保存我拥有的不同列。查询应该是动态的,所以如果我在第二个 table 上创建新列,我就不必更新我的查询。

SELECT id_invoice,
       CASE WHEN description = 'A' THEN total ELSE '' END a,
       CASE WHEN description = 'B' THEN total ELSE '' END b,
       CASE WHEN description = 'C' THEN total ELSE '' END c
FROM invoices
JOIN columns USING (id_column)