webForumDet fria alternativet

Flera Innerjoin.

9 svar · 562 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19995 875 inlägg
#1

Hej

Jag vill ha flera innejoin, gör man så här då?

INNER JOIN tabArt, tabTillverkare ON (tabUnderKat.UnderKatID = tabArt.UnderKatID), (tabArt.TillverkareID = tabTillverkare.TillverkareID)

Eller hur gör man?

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

BrimbaMedlem sedan dec. 19995 875 inlägg
#2

eller man kanske rent av gör såhär?

INNER JOIN (tabArt INNER JOIN tabTillverkare ON tabArt.TillverkareID = tabTillverkare.TillverkareID) ON tabUnderKat.UnderKatID = tabArt.UnderKatID

eller?

eller såhär:

INNER JOIN tabArt (INNER JOIN tabTillverkare ON tabArt.TillverkareID = tabTillverkare.TillverkareID) ON tabUnderKat.UnderKatID = tabArt.UnderKatID

eller?

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

BrimbaMedlem sedan dec. 19995 875 inlägg
#3

erased, because it maybe were a bit more teasing than Swaey, could handle :q

[Redigerat av Brimba den 21 jun 2000]

fredrikMedlem sedan dec. 19991 072 inlägg
#4

Nej, så här kan du göra:
Om vi säger att jag har 3 tabeller. En med produkter och produkt ID, en med färg_id och produkt_id och en med färg och färg_id.

Produkt|produkt_id
cykel  |  3
bil    |  4
-----------------
color_id|produkt_id
  1     |     3
  2     |     4
-----------------
color|color_id
röd  |   1
blå  |   2

Om du då ska hämta färgnamnen baserat på produktens id skriver du:

SELECT color_id.color FROM produkt INNER JOIN color ON produkt.produkt_id color.produkt_id INNER JOIN color_id ON color.color_id = color_id.color_id WHERE (produkt.produkt_id = 4)

Detta skulle alltså ge dig färgen blå i detta fallet.
Och på samma sätt skriver du flera innerjoins efter varandra.

Hoppas det funkar!

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/

[Redigerat av fredrik den 21 jun 2000]

BrimbaMedlem sedan dec. 19995 875 inlägg
#5

Aha, det är bara å skriva flera stycken efter varann, det verkar lite onödigt tycker jag, men tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

BrimbaMedlem sedan dec. 19995 875 inlägg
#6

Är du verkligen säker på din sak nu?

Jag provade din variant, fungerar inte. Sen provade jag min variant (nummer 2)

INNER JOIN (tabArt INNER JOIN tabTillverkare ON tabArt.TillverkareID = tabTillverkare.TillverkareID) ON tabUnderKat.UnderKatID = tabArt.UnderKatID

Det fungerade perfekt.

Kan man verkligen skriva så som du skrev?

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

fredrikMedlem sedan dec. 19991 072 inlägg
#7

Japp, det funkar perfekt!
Testkörde det nämligen innan jag publicerade det...

Har en liknande databas själv nämligen där jag använder den koden.

Kolla igen att du döpt tabellerna rätt så ska det funka.

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/

fredrikMedlem sedan dec. 19991 072 inlägg
#8

Vid närmare titt ser jag nu att jag missade ett "="-tecken i den först innerjoinen.

Den riktiga koden ska vara:

SELECT color_id.color FROM produkt INNER JOIN color ON produkt.produkt_id = color.produkt_id INNER JOIN color_id ON color.color_id = color_id.color_id WHERE (produkt.produkt_id = 4)

Skumt för likamedtecknet försvann nu med när jag skulle klistra in...

jaja, men nu funkar det iaf.

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/

BrimbaMedlem sedan dec. 19995 875 inlägg
#9

Det är egentligen strunt samma, min kod fungerar fint, så jag kör med den. Är den egentligen felaktig?

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

fredrikMedlem sedan dec. 19991 072 inlägg
#10

Nejdå, den är inte felaktigt, den funkar med.

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/

135 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)