因此,我一直在阅读有关动态行到列的其他一些问题。通过在此处的另一个答案中调整另一个查询
mysql 选择动态行值作为列名,将另一列作为值,
我可以让它适用于单个表,但是我还需要从其他两个表中提取记录以包含在结果中。鉴于这些表:
Cars
ID BRAND NAME etc1...
1 gmc sierra
2 ford ranger
3 dodge dakota
4 kia rio
Dice
ID DESCRIPTION
1 blue
2 green
3 red
etc2. etc2.
Stock
ID CAR_ID DICE_ID NUMBER
1 1 3 01V,3Y6
2 3 1 8Z4
3 2 2 03X
4 1 1 C7B
所以是的,这没有多大意义,但这只是为了展示结构。我的结果需要看起来像这样:
CAR_ID BRAND NAME etc1. BLUE GREEN RED etc2.
1 gmc sierra ... C7B null 01V,3Y6 ...
2 ford ranger ... null 03X null ...
3 dodge dakota ... 8Z4 null null ...
4 kia rio ... null null null ...
如果它是静态的,则很简单,但 Cars and Dice 中的行数将是动态的,因此不能硬编码。我可以让 Dice 将行输出到列中,但有两件事我无法弄清楚:
- 主查询应该列出 Cars 表中的所有列以及所有行作为 Dice 表中的列,但我不知道如何将 Dice 查询附加到 Cars 查询。
- 我需要从 Dice 表中提取相关描述以用作列标题。使用 dice.id 既不实用也没有帮助。我不知道如何将其合并到我对 Dice 表的工作查询中。
有谁知道如何产生预期的结果?
编辑 1:我忘了说结果必须列出所有汽车,无论它们是否有 Dice 库存。
编辑 2:我应该澄清 NUMBER 是指产品编号而不是计数。这是一个可以保存多个产品编号的字符串字段。这是遗留数据。