webForumDet fria alternativet

Fråga om JOIN-syntax

4 svar · 182 visningar · startad av Engine^

Engine^Medlem sedan dec. 20003 887 inlägg
#1

När man joinar två tabeller har det någon betydelse på vilken sida av = i ON-villkoret man stoppar de olika kolumnerna?

SELECT *
FROM tblA
INNER JOIN tblB
ON tblB.ID = tblA.ID [i]eller om man skriver[/i] tblA.ID = tblB.ID
StevePMedlem sedan mars 2003772 inlägg
#2

Jag skriver alltid

select
tblA.column1
tblA.column2
tblA.column3

from tblA

Inner join tblB on tblA.column1 = tblB.Column1

Eftersom exemplen i SQL, T-SQL guider visa så.

Engine^Medlem sedan dec. 20003 887 inlägg
#3

Så brukar jag normalt också göra, men jag vill veta vad skillnaden är... om det finns för- och/eller nackdelar.

Om man nästlar några joins, så kanske det är viktigare med hur man skriver villkoren.

aasahMedlem sedan mars 20034 471 inlägg
#4

Rimligtvis kan det väl inte ha nån betydelse!?
Vad är skillnaden mellan 6 = 2 * 3 och 2 * 3 = 6? Ingen alls. Oavsett ordningen du listar tabellerna i i villkoret måste ju samtliga kombinationer i båda tabellerna prövas för att se om villkoret är uppfyllt. Om nu tblA har 10 rader och tblB har 100 så går du antingen igenom
10 * 100 eller 100 * 10 alternativ. Och det tar ju precis lika lång tid vilket som...

Engine^Medlem sedan dec. 20003 887 inlägg
#5

Ah, tänkte aldrig så pedagogiskt ;) Det är ju självklart!

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