Avatar billede Slettet bruger
28. april 2005 - 11:11 Der er 6 kommentarer og
1 løsning

Multi self self join?

Jeg har denne tabel:

| id | item | quantity |

Indholdet af tabellen kunne fx se sådan ud:

| 1 | pc | 5 |
| 1 | laptop | 10 |
| 2 | crt | 25 |
| 1 | pc | 30 |

Hvordan finder jeg ud af hvor mange pc, laptops og crt et enkelt id har? Fx id 1..

Jeg har prøvet med noget self join men kunne ikke få det til at virke..

På forhånd tak,
- Andreas
Avatar billede arne_v Ekspert
28. april 2005 - 11:17 #1
SELECT item,SUM(quantity)
FROM tabel
GROUP BY item
WHERE id=1

måske ?
Avatar billede Slettet bruger
28. april 2005 - 11:26 #2
Jeg fik vidst ikke forklaret mig ordentlig..

Jeg skal have resultatet ud sådan her:
pc: 35
laptop: 10
crt: 25

Altså så værdien af `item` bliver navnet på feltet.. Hvis du forstår?
Kan det lade sig gøre?
Avatar billede arne_v Ekspert
28. april 2005 - 11:29 #3
er det ikke det som min query returnerer ?
Avatar billede Slettet bruger
28. april 2005 - 11:35 #4
Nej.. Jeg ved ikke lig hvordan jeg skal forklare det..
Men outputtet skal ligne det her:

| pc | laptop | crt | <- Feltnavne i den 'nye' tabel som queryen uotputter.
+----+--------+-----+
| 35 |  10  |  0  | <- Værdierne i den 'nye' tabel.


Hvis man nu ikke angiver WHERE i den endnu ikke eksisterende query, vil resultatet se sådan ud:

| pc | laptop | crt |
+----+--------+-----+
| 35 |  10  |  0  |
|  0 |    0  | 25  |



Ellers ved jeg ikke hvordan jeg skal forklare det..
Avatar billede arne_v Ekspert
28. april 2005 - 12:12 #5
OK - nu er jeg med.

Mange database har den funktionalitet via en TRANSPOSE, men den har MySQL ikke.

De fleste løser problemet i applikationen fremfor i databasen.

Jeg kan ikke lige gennemskue om det kan laves med en SELF JOIN.
Avatar billede Slettet bruger
06. juli 2005 - 15:10 #6
Tak for hjælpen. Jeg fandt nu aldrig ud af det.

Beklager ventetiden, smid et svar :-)
Avatar billede arne_v Ekspert
06. juli 2005 - 15:24 #7
ok
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