webForumDet fria alternativet

Hjälp med INNER JOIN

6 svar · 231 visningar · startad av bigsky

bigskyMedlem sedan maj 2002821 inlägg
#1

Jag har två tabeller, intranat (kunduppgifter) och lankar (innehåller länkar i diverse kategorier).
Jag vill kunna plocka fram information, dels från lankar men också får ett fält i intranat. Fälten tblName (lankar) och tblForetag (intranat) ska vara samma. En inner join är väl att föredra. Problemet är att jag inte får fram några poster. Jag vet att minst en post i intranat borde matcha frågan.

Jag skulle även vilja skriva ut resterande poster från lankar, även om det inte finns relaterad information att hämta från intranat. Alltså, även skriva ut allt från lankar, bara villkoret WHERE tblR = True uppfylls.

SELECT lankar.*, tblForetag FROM intranat INNER JOIN lankar ON intranat.tblForetag = lankar.tblName WHERE tblR = True ORDER BY tblName
LarsGMedlem sedan dec. 200012 464 inlägg
#2

Om du vill ha med poster där det inte finns någon matchande post i intranat.

SELECT lankar.*, tblForetag 
FROM intranat left outer JOIN lankar 
ON intranat.tblForetag = lankar.tblName 
WHERE tblR = True 
ORDER BY tblName
bigskyMedlem sedan maj 2002821 inlägg
#3

Jag vill alltså skriva ut alla poster från lankar, men för de poster i lankar som har en matchande post i intranat vill jag även hämta in värdet från två kolumner i intranat.
Att hämta värdet från intranat funkar med din kod ovan, dock skrivs BARA de poster i lankar som har en matchande post i intranat ut. Och så ville jag ju inte ha det.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

I vilken tabell finns kolumnen tblR? Jag trodde att den fanns i lankar. Om den däremot finns i intranat så får du flytta villkoret från where till on.

bigskyMedlem sedan maj 2002821 inlägg
#5

tblR finns i lankar. Den koden du presenterade gör väl kanske just det att den bara skriver ut poster från lankar där det finns en matchande post i intranat? Jag vet inte, kanske man måste lösa det med en If-sats någonstans så att alla poster från lankar skrivs ut samt att för de poster som har en matchande post i intranat även skrivs ut data från intranat? Krångligt värre...

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Ursäkta, jag hade tabellerna i fel ordning i joinvillkoret

SELECT lankar.*, tblForetag 
FROM lankar left outer JOIN intranat
ON intranat.tblForetag = lankar.tblName 
WHERE tblR = True 
ORDER BY tblName
bigskyMedlem sedan maj 2002821 inlägg
#7

Tack LarsG, du är en pärla och det vet du ;)

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