Avatar billede Lasse S Novice
08. august 2003 - 14:29 Der er 9 kommentarer og
1 løsning

sql: kan name gøres til value i et view?

Jeg har en stribe tabeller, hvorfra jeg henter værdier ud i et view. Bla. har jeg tabellerne fieldnames og fieldvalues, som jeg gerne vil have forenet i viewet på følgende måde:

Tabellerne:

#fielsnames
fieldnr  |  fieldname
---------------------
1        |  size
2        |  price

#fieldvalues
fieldnr  |  fieldvalue
----------------------
1        |  XL
2        |  7.99

Og dem vil jeg gerne have forenet i et view, så det kommer til at se ud sådan her:

#view
var    |  value
-----------------
size    |  XL
price  |  7.99
m.fl..

Kan man gøre det alene i SQL, altså uden at skulle op på scriptniveau og jonglere med arrays? Hvordan?
Avatar billede arne_v Ekspert
08. august 2003 - 18:24 #1
Som dit eksempel er beskrevet her så bør:

SELECT fieldname var, fieldname value FROM fieldnames JOIN fieldvalues ON fieldnames.fieldnr=fieldvalues.fieldnr

kunne gøre det.
Avatar billede guru Nybegynder
14. august 2003 - 14:31 #2
Eller:

select
  N.fieldname as var,
  V.fieldvalue as value
from
  fielsnames as N,
  fieldvalues as V
where
  N.fieldnr=V.fieldnr
Avatar billede arne_v Ekspert
18. august 2003 - 23:32 #3
xls>

OK ?
Avatar billede guru Nybegynder
22. august 2003 - 14:06 #4
Jeg tror han er taget på ferie :-)
Avatar billede Lasse S Novice
22. august 2003 - 15:13 #5
nej nej, ingen ferie her, desværre.
jeg har bare ikke haft tid til at teste jeres svar før nu...

og nu går det op for mig, at jeg har stillet spørgsmålet forkert. I svarer ganske rigtigt med et helt almindeligt join, og det er jo nemt nok :)

det der skulle have stået var, at jeg gerne ville ende ud med en tabel, der så således ud:

size  |  price  |  m.fl.
--------------------------
XL    |  7.99  |  ..

således at posterne fra fieldsnames-tabellen (size, price) i stedet for at være værdier går hen og bliver feltnavne - feltnavne for de kolonner hvori værdierne fra fieldsvalues-tabellen så er værdier...

kryptisk?
Avatar billede Lasse S Novice
22. august 2003 - 15:14 #6
og tak for jeres vedholdende tålmodighed :o)
Avatar billede erikjacobsen Ekspert
22. august 2003 - 15:16 #7
Er det nødvendigt at det bliver feltnavne? Har du en eller anden slags
programmeringsfrontend (webside fx), kan den jo vende tabellen om ved
udskrift.
Avatar billede arne_v Ekspert
22. august 2003 - 15:18 #8
Det tror jeg ikke at du kan rent SQL mæssigt.

Men det må vel vær enemt at gøre i applikationen.
Avatar billede arne_v Ekspert
22. august 2003 - 15:21 #9
Funktionen hedder normalt TRANSPOSE, men den har MySQL (så vidt jeg ved
oh kan finde ud af) ikke.
Avatar billede Lasse S Novice
22. august 2003 - 15:28 #10
TRANSPOSE, ahaa...
Jo, jeg kan selvfølgelig merge sagerne på script-niveau, det ville bare have været smartere (og bedre performance) at kunne det allerede i querien!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester