webForumDet fria alternativet

SQL - relationstabell - JOIN

9 svar · 233 visningar · startad av solbulle

solbulleMedlem sedan mars 20014 998 inlägg
#1

Har denna SQL, den gör vad den ska, men nu vill jag kunna plocka ut en post där tblrelation.fld_who_id stämmer med tblrelation.fld_bild_id. Jag vill alltså kunna spara flera relationer i min relationstabell men på något sätt kunna plocka ut varje artikel men med endast en bild.
Går det att lösa direkt i SQL-satsen/frågan? Ska jag lägga till ett fält i min relationstabell för att markera "förstahandsvalet"?

SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldPlace < 15 ORDER BY fldPlace"

Red. Som läget är nu får jag (givetvis) ut alla poster där det matchar, det gör att när jag lägger det i en array får jag dubletter. (Distinct...?)
------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

[Redigerat av solbulle den 06 feb 2002]

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Distinct hjälper inte, men det går att ordna så att det blir en bild (den med högst eller lägst id) om du använder group by och max. Jag skulle nog rekommendera att du har någon rangordning mellan bilder eller liknande.

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

solbulleMedlem sedan mars 20014 998 inlägg
#3

Hm... om jag tar och lägger till ett fält i min relationstabell, tex en kryssruta, för den bild som skall visas/prioriteras, hur ska min sqlfråga då se ut tro?

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

LarsGMedlem sedan dec. 200012 465 inlägg
#4
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON (tblrelation.fld_bild_id = tblbild.fldBildid and tblBild.rank = 1) where fldPlace < 15 ORDER BY fldPlace"

red: Om man kör access brukar det behövas extra parenteser
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 06 feb 2002]

solbulleMedlem sedan mars 20014 998 inlägg
#5

Sådär ja, jag ändrade till tblrelation.rank och efter att jag efter ett tag insett varför bilderna inte syntes fungerade det. (Bildens plats försköts i den array jag plockar ut.) - Börjar bli lite trött nu...

Tackar.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

[Redigerat av solbulle den 06 feb 2002]

solbulleMedlem sedan mars 20014 998 inlägg
#6

Om jag nu utgår från denna men vill plocka ut en post där fldartikelID = strID (strID från en querystring)
Hur gör jag då?
Jag vill nu alltså plocka ut "artikeln" samt alla bilder som hör till och sen lägga dessa i en array.
(Kommer bilderna sist i arrayen? Hur vet man annars den inbördes placeringen av posterna?)

SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldartikelID = fldartikelID"

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

LarsGMedlem sedan dec. 200012 465 inlägg
#7
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldartikelID = " & request.querystring("fldartikelID") order by fldPlace

Ordningen mellan poster är enbart beroende av det som står i order by.

jag förstår inte vad du menade med

Kommer bilderna sist i arrayen?

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

solbulleMedlem sedan mars 20014 998 inlägg
#8

Attans bra respons här, dock var jag tvungen att fasra så jag har inte kunnat ta del av svaret tidigare.

Kalas, dock fick jag "fnutta lite" (?)

SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldartikelID = " & request.querystring("fldartikelID") & " order by fldPlace"

Ang

Kommer bilderna sist i arrayen?

så var det jag som snurrade till det hela i hjärnverksamheten och tänkte att "bild2" skule hamna på en senare "plats" i arrayen, den hamnar givetvis i en annan dimension. (Heter det så?) -Så jag får loopa ut bilderna.
Nu är det bara en liten grej, säkert bara jag som tänker fel.
För att få ut mina bilder loopar jag min array:

for i=0 to ubound(myArray,2)
strImage = myArray(19,i)
next

Men hur gör jag om jag vill typ kunna ge variabeln ett dynamiskt namn typ strImage + i , så att jag till slut sitter med:

strImage1
strImage2
strImage3 osv.

Fast det går väl iofs inte att "manipulera" variabelnamn? Någon annan lösning.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

LarsGMedlem sedan dec. 200012 465 inlägg
#9

jag förstår nog inte. Bilderna finns ju i din array så ...

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

solbulleMedlem sedan mars 20014 998 inlägg
#10

Hjärnsläpp på den här sidan av teleledningen...

Allt är lugnt nu.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

129 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
126 ms — hämta tråd, inlägg och bilagor (db)