webForumDet fria alternativet

Skillnad mellan join och where

6 svar · 215 visningar · startad av Nickemannen

NickemannenMedlem sedan aug. 20003 575 inlägg
#1

Vad e det för skillnad på koden nedaför?
enligt min mening ingen...

strSQL = "Select * From Tabell1,Tabell3 Where Tabell1.Id = Tabell2.Id2"

eller

strSQL = "Select * From Tabell1 Join Tabell3 On Tabell1.Id = Tabell2.Id2"

Finns det någon prestanda skillnad?
någons om vet

------------------
"Brott kanske inte lönar sig, men det är kul"

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Dom är helt likvärdiga enligt min mening också.

------------------
essentitia preter non sans multiplicandum

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#3

Jag, visst är det prestandaskillnad. I den första SQLen som hämtar man ju först ut allt från tabell1 och tabell3 så det blir (antal poster i tabell1 * antal poster i tabell3) poster. Sen plockas det som man vill ha ut i wheren.

I joinen hämtar man ju från tabell1 och joinar in det som matchar i tabell3.

Andra är alltså bättre. Jag har väl rätt nu..?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp3d/

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#4

Dessa tre är enligt mig samma sak:

Select * From Tabell1,Tabell3 Where Tabell1.Id = Tabell3.Id2
Select * From Tabell1 Join Tabell3 On 1 = 1 Where Tabell1.Id = Tabell3.Id2
Select * From Tabell1 Cross Join Tabell3 Where Tabell1.Id = Tabell3.Id2

------------------
/Erik
www.juhlin.nu /sk8files/ /mp3d/

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det är ingen sql-kompilator som utför en cross-join innan man applicerar where-villkoret.

------------------
essentitia preter non sans multiplicandum

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#6

De fungerar alltså inte likadant...

Men jag har väl rätt i mitt påstående att Nickemannens andra SQL är bäst prestandamässigt..?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp3d/

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Nej.

------------------
essentitia preter non sans multiplicandum

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