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

Select från flera rader

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?

Dela detta inlägg


Länk till inlägg
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

Dela detta inlägg


Länk till inlägg
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.)

Redigerad av jarlh

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...