webForumDet fria alternativet
Logga in / Bli medlem

JOIN och sånt

Databaser & SQL

6 svar · 241 visningar · startad av Nöff

Medlem sedan nov. 2003569 inlägg
Trådstart#1

tjena.

har en tabell med personer och deras ordrar. 1 person kan ha flera ordrar

tabell: personer
ID
namn

tabell:ordrar
ID
personID
produktnamn

SELECT personer.namn,ordrar.produktnamn FROM personer INNER JOIN ordrar ON personer.ID=ordrar.personID

Och då blir resultatet såhär:

"personer.namn"    "ordrar.produktnamn"
Olle Svettpärla      mjölkpaket
Olle Svettpärla      ost
Olle Svettpärla      getost

personer.namn blir hela tiden upprepad om det finns flera ordrar
Men jag vill ha så att det blir såhär istället:

"personer.namn"   "ordrar.produktnamn"
Olle Svettpärla     mjölkpaket
<NULL>              ost
<NULL>              getost

Eller ännu hellre såhär:

"personer.namn"   "ordrar.produktnamn"
Olle Svettpärla     <NULL>
<NULL>              mjölkpaket
<NULL>              ost
<NULL>              getost

Går detta att kirra? :l

Medlem sedan juni 200032 967 inlägg
#2

Lös det i applikationen, och inte i SQL.

Medlem sedan nov. 2003569 inlägg
#3

Men tabellen personer innehåller egentligen 20 kolumner, exemplet jag visade här vara bara en förenkling.. för att en person kanske också har sisådär en 30 ordrar, det blir ju en ganska fet resultset :l ...
Men går det inte att lösa på nåt sätt i SQL?

:x :( :l :) :D :i :e :L

Medlem sedan juni 200032 967 inlägg
#4

Om du oroar dig över datamängden, strunta i att joina då. Hämta ett resultatset med kunddata och ett med orderdata.

Medlem sedan nov. 2003569 inlägg
#5

Jo, det är så jag gör nu, men jag vill optimera alltihopa så att jag slipper ställa 2 SQL frågor.

Medlem sedan juni 200032 967 inlägg
#6

Att minska antalet SQL-frågor betyder inte att du optimerar. Är det något problem att göra som du gör nu?

Medlem sedan nov. 2003569 inlägg
#7

nej, det är inget problem, men jag vill krama ur så mycket speed som möjligt.

262 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)