CARATTERISTICA SOTTO OGGETTO:
idT valore fkIdCaratteristica fkIdSottooggetto
1 8 2 1
2 rosso 3 1
3 6 2 2
4 nero 3 2
5 100 4 2
6 150 4 1
加勒比海:
idT nome unitaMisura
2 lama cm
3 colore colore
4 Peso kg
我喜欢
fkIdSottooggetto lama colore peso
1 8 rosso 150
2 6 nero 100
我不知道如何联接两个表来创建此结果
我尝试了,但是什么都没有。
:)
最佳答案
您尝试做的事情称为“透视”。在您的情况下,我仅将第二张表用作如何显示第一张表的结果的提示。查询本身不需要。
SELECT fkIdSottooggetto,
MAX(CASE WHEN fkIdCaratteristica=2 THEN valore END) lama,
MAX(CASE WHEN fkIdCaratteristica=3 THEN valore END) colore,
MAX(CASE WHEN fkIdCaratteristica=4 THEN valore END) peso
FROM CARATTERISTICA_SOTTOOGGETTO
GROUP BY fkIdSottooggetto
参见demo。
在我的解决方案中,我选择了
max()
来汇总每个特征的分组值。可能是您希望在应用程序中使用min
值或这些值的sum
。但这仅在表中每个fkIdSottooggetto
和fkIdCaratteristica
有多个值的情况下才有意义。