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
4 svar · 182 visningar · startad av Engine^
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
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å.
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.
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...
Ah, tänkte aldrig så pedagogiskt ;) Det är ju självklart!