CARATTERISTICA_SOTTOOGGETTO:
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
CARATTERISTICA:
idT nome unitaMisura
2 lama cm
3 colore colore
4 Peso kg
我喜欢
fkIdSottooggetto lama colore peso
1 8 rosso 150
2 6 nero 100
我不知道如何加入2个表来创建此结果
我试过但没有......
:)
答案 0 :(得分:0)
您要做的事情称为“旋转”。在你的情况下,我只使用第二个表作为如何显示第一个表的结果的提示。查询本身不需要它。
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
有多个值的情况。