webForumDet fria alternativet
Logga in / Bli medlem

kategorisera tre tabeller

Databaser & SQL

12 svar · 185 visningar · startad av OveRRidE

Medlem sedan feb. 200112 078 inlägg
Frågan#1

Here we go again:

KAT2
---------
k2KatId1
k2KatId2
k2Kategori

PRODUKTER
---------
prdNamn
prdKatid1
prdKatid2

PROBLEM
Jag vill skapa en lista på alla produkter där produkter.prdKatId1 = 1, samtidigt vill jag ha ut kat2.k2Kategori och kat2.k2KatId2 så att jag kan skriva på varje rad vilken underkategori de tillhör. Dessa skall grupperas efter vilken underkategori (kat2) de tillhör.

red) Kan ju nämna att jag använder en Access databas. ;)

Medlem sedan dec. 200012 464 inlägg
#2

Så här kanske?

select k.k2kategori,k.k2katid2,p.*
from kat2 k, produkter p
where p.prdKatid1 = 1
 and p.prdKatid2 = k.k2katid2
group by k.k2katid2
Medlem sedan feb. 200112 078 inlägg
#3

Hrmm jag funderade på om man inte var tvungen att köra en INNER JOIN för att få det att funka.. ?

Men det var man tydligen inte.. ;)

Medlem sedan juni 20008 205 inlägg
#4

LarsG:s exempel är i praktiken en inner join.

Medlem sedan feb. 200112 078 inlägg
#5

Jo det är sant, men just uttrycket. ;)

Medlem sedan feb. 200112 078 inlägg
#6

Mja.. efter att ha testat så funkar det inte så bra..

får en massa dubbla av allt

Medlem sedan dec. 200012 464 inlägg
#7

Kan du förklara lite mer hur tabellerna är relaterade och kanske ge ett litet exempel på hur dina värden ser ut.

Medlem sedan feb. 200112 078 inlägg
#8

http://www.jsc.nu/override/wf/db_spi.jpg

Kolla här så ser du hela strukturen.

När jag körde din sträng först så sa den att den inte kunde gruppera eftersom du angivit p.* på ett ställe. Sen vete fasen, men jag fick den iaf inte att funka.. :l

Det blev iallafall en lista med dubletter, och inte bara det, den valde även de där prdKat1 inte var 1. Plus att de knöts till fel kategorier om man
skrev ut det på samma rad.. :(

Medlem sedan dec. 200012 464 inlägg
#9
select k.k2kategori,k.k2katid2,p.*
from kat2 k, produkter p
where p.prdKatid1 = 1
and p.prdKatid2 = k.k2katid2
and p.prdKatid1 = k.k2katid1
order by k.k2katid2

Förstår inte varifrån jag fick att det skulle vara en group by.

Medlem sedan feb. 200112 078 inlägg
#10

Det är mänskligt att fela. ;)

Medlem sedan juni 20019 024 inlägg
#11

LarsG är inte mänsklig när det gäller SQL! §e

Medlem sedan feb. 200112 078 inlägg
#12

:e

Medlem sedan feb. 200112 078 inlägg
#13

Offtopic:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.2914)

Hrmm, syns det när man har .NET CLR:en installerad?

Trodde bara det var till IIS-servern..

383 ms totalt · 4 externa anrop · v20260731065814-full.05830320
123 ms — deklarationer (db)
128 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)