Just nu i M3-nätverket
Gå till innehåll

Select från flera rader


TSH

Rekommendera Poster

Har en tabell som ser ut enligt nedan

 

Kolumn 1 Kolumn 2 Kolumn 3

ID1 Färg Blå

ID1 Modell Metall

ID2 Färg Röd

ID3 Modell Plast

 

Jag vill få till en select-sats som ger följande resultat

ID1, Blå, Metal

ID2, Röd, Plast

 

Hur kan en syntax se ut?

Länk till kommentar
Dela på andra webbplatser

Har en tabell som ser ut enligt nedan

 

Kolumn 1 Kolumn 2 Kolumn 3

ID1 Färg Blå

ID1 Modell Metall

ID2 Färg Röd

ID3 Modell Plast

 

Jag vill få till en select-sats som ger följande resultat

ID1, Blå, Metal

ID2, Röd, Plast

 

Hur kan en syntax se ut?

 

 

Hej!

 

Ett sätt är att bygga två vyer och kombinera dessa (jag kallar din originaltabell för 'modelltabell'):

 

SELECT f.id, m.modell, f.färg
FROM (SELECT kolumn1 AS id, kolumn3 AS modell
     FROM modelltabell
     WHERE kolumn2='modell') m,
     (SELECT kolumn1 AS id,kolumn3 AS färg
    FROM modelltabell
    WHERE kolumn2='färg') f
WHERE f.id=m.id;

/Pär B

Länk till kommentar
Dela på andra webbplatser

Joina tabellen med sig själv:

 

select t1.k1, t1.k3, t2.k3

from tab as t1 join tab as t2 on t1.k1 = t2.k1

where t1.k2 = 'Färg' and t2.k2 = 'Modell';

 

Kräver iofs att både färg- och modell-rader finns för varje pryl.

 

 

Felsäker variant, klarar av inga eller flera olika material/färger:

SELECT DISTINCT k1, t2.k3, t3.k3

FROM tab t1 LEFT JOIN tab t2 ON t1.k1 = t2.k1 AND t2.k2 = 'Färg'

LEFT JOIN tab t3 ON t1.k1 = t3.k1 AND t3.k2 = 'modell';

 

Det är väl det här som är nackdelen med att lagra "egenskaper" i separata rader i en tabell. Lätt hänt att man får lite dålig koll på vad som gäller. (Primary key på (k1, k2) är en bra start att undvika konflikt mellan färger/material.)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...