webForumDet fria alternativet

Är det ena lika rätt som det andra? (inner join)

Databaser & SQL

4 svar · 178 visningar · startad av Bäckman

Medlem sedan nov. 2001274 inlägg
Frågan#1

Hejsan. Skulle vilja veta om den kod jag använder nu är lika korrekt som en annan. Nedan är en kod som väljer ut den skribent som har skrivit en viss artikel. Skribenten hänvisas till genom ett visst id-nummer, Aanvandarid.

Min kod:

$sql = "select Aartikel, Balias from artiklar, anvandare where Aanvandarid = Bid";

Den lite mer korrekta koden kanske:

$sql = "select a.Aartikel, b.Balias from artiklar as a inner join anvandare as b on a.Aanvandarid = b.Bid";

Uttrycken funkar lika bra i praktiken, men jag undrar vilka som är fördelarna med att skriva på det ena eller andra sättet, och om man bör undvika att skriva på mitt sätt?

Medlem sedan dec. 200012 464 inlägg
#2

Det är ingen skillnad, båda varianterna ingår i SQL-standarden.

Medlem sedan juni 200032 967 inlägg
#3

Re: Är det ena lika rätt som det andra? (inner join)

Bäckman skrev:

Uttrycken funkar lika bra i praktiken, men jag undrar vilka som är fördelarna med att skriva på det ena eller andra sättet, och om man bör undvika att skriva på mitt sätt?

Jag brukar alltid sträva efter att vara så tydlig som möjligt, det innebär att kvalificera fältnamn med tabell om mer än en tabell ingår i frågan.

Mvh

Medlem sedan dec. 20003 887 inlägg
#4

Jag kör som @nders och jag skulle ha skrivit så här

sql = "SELECT tblA.artikel, tblB.id FROM artiklar tblA INNER JOIN anvandare tblB ON tblB.Bid = tblA.Aanvandarid

Sedan så använder jag så långt det går engelska för mina tabell- och fältnamn (även variabelnamn osv.) för att slippa å,ä och ö.

Medlem sedan mars 20034 471 inlägg
#5

Svaret på frågan är "ja". Det är ingen skillnad.

273 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
138 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)