Avatar billede ostehamster Nybegynder
01. marts 2010 - 15:49 Der er 5 kommentarer og
1 løsning

Lave en true/false kolonne hvis posten findes i to tabeller

Hej

Jeg har en tabel med "ydelser" med "id, egenskab, pris", denne indeholder en række service ydelser. Derudover har jeg en tabel der sammenkobler brugere og ydelser med bid og yid (bruger id og ydelses id), vi kalder den X.

Jeg skal lave en liste over alle ydelser, og sætte et flueben hvis en given bruger bruger denne ydelse. Til dette vil jeg gerne lave en eller anden form for join, hvor resultatet bliver: "yid, egenskab, pris, brugt". Resultatet skal have alle ydelser, og brugt skal være true hvis der findes en række i X der sammenkobler bid og yid, og ellers false.

Jeg har dog kun kunnet komme op med joins hvor kun række hvor bid findes bliver vidst, men ikke alle de række hvor bid ikke findes.

Nogen der kan hjælpe med dette :)

På forhånd tak

/Christoffer
Avatar billede acore Ekspert
01. marts 2010 - 16:13 #1
SELECT id AS yid, egenskab, pris, COUNT(x.id) AS antal FROM ydelser AS y LEFT JOIN x ON (y.id = x.id)

så får du (ikke testet) det ønskede, idet det sidste felt er antallet af gange ydelsen er benyttet.
Avatar billede arne_v Ekspert
01. marts 2010 - 22:00 #2
Og:

...,COUNT(x.id)>0,...

skulle give en true/false
Avatar billede ostehamster Nybegynder
05. marts 2010 - 04:20 #3
Det virkede, takker :)

Svar?
Avatar billede arne_v Ekspert
05. marts 2010 - 04:58 #4
acore I presume
Avatar billede arne_v Ekspert
26. april 2010 - 03:43 #5
acore?
Avatar billede ostehamster Nybegynder
19. august 2010 - 23:21 #6
Lukker
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

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