webForumDet fria alternativet

Outer Join-fel

2 svar · 207 visningar · startad av pettsson

pettssonMedlem sedan jan. 20021 122 inlägg
#1

Jag vill plocka ut de rader som delar de två sista siffrorna i sitt artikelnummer med det aktuella objektet, och deras revision. Utskrift av frågan som den ser ut om jag skriver ut den:

SELECT DISTINCT bt.HardwarePartNo, br.HardwareRevision FROM board_test bt
LEFT OUTER JOIN board_revision br ON bt.HardwarePartNo WHERE bt.HardwarePartNo LIKE '5010140%'
AND bt.HardwarePartNo != 501014011
AND br.HardwareRevision != ""
ORDER BY bt.HardwarePartNo, br.HardwareRevision ASC

Problemet är att jag får revisioner som inte finns på de rader som jag tycker att jag plockar fram.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Problemet är att jag får revisioner som inte finns på de rader som jag tycker att jag plockar fram.

Jag har nu läst ovanstående, men jag kan inte begripa vad du menar. När du ställer en fråga är det alltid bra att ha med tabellbeskrivning, exempel på datainnehåll och förväntat resultat.

Din fråga ser lite konstig ut, tex

ON bt.HardwarePartNo

här borde du väl ha någon jämförelse med någon annan kolumn. En annan sak är när du använder en left outer join så måste du lägga alla villkor på den högra tabellen i ON och inte i WHERE. I det senare fallet innebär det att din fråga blir en INNER join istället. Sen så skall man använda

<>

inte

!=

samt

''

inte

""
pettssonMedlem sedan jan. 20021 122 inlägg
#3

*suck*, och jag som trodde jag hade fått någorlunda grepp på detta... Nåväl, när jag följt dina råd, dvs. flyttade alla br.* till ON och gjorde en ordentlig jämförelse på det som redan stod där, så funkade det som tänkt. Tackar och bockar :)

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