webForumDet fria alternativet

2 descriptions

7 svar · 227 visningar · startad av SteveP

StevePMedlem sedan mars 2003751 inlägg
#1

Jag ska hämta data för att printa ut en specifik post.
Problemet är att tblConstants innehåller ett fält som heter "Description".
tblPostList har ett fält som heter tblPostList.Officelist och det är relaterat till tblConstants.ConstantsID
När den relationen är gjord så kan man se breskrivningen i "tblConstants.Description" kolumnen.

Men tblPostList innehåller också ett fält som heter tblPostList.CurrentstatusList som är relaterat till tblConstants.ConstantsID precis som tblPostList.OfficeList är.

Hur får jag ut båda i en och samma query?

Som ni ser nedan så har jag

Left outer join tblConstants on tblPostList.OfficeList = tblConstants.ConstantsID

Men jag vill också få in

Left outer join tblConstants on tblPostList.CurrentStatusList = tblConstants.ConstantsID

Båda "tblPostList.CurrentStatusList" och "tblPostList.OfficeList"
är FK's.

Left outer join tblPostListType on tblPostlist.PostTypeID = tblpostListType.PostTypeID
Left outer join tblOrganisations on tblOrganisations.OrgID = tblPostList.OrgID
[b]Left outer join tblConstants on tblPostList.OfficeList = tblConstants.ConstantsID[/b]
Left outer join tblLCPContactDetails on tblPostList.ContactID = tblLCPContactDetails.ContactID
LarsGMedlem sedan dec. 200012 465 inlägg
#2

Du behöver inte ytterligare en left join utan bara ett AND-villkor i din on-klausul.

StevePMedlem sedan mars 2003751 inlägg
#3

jo jag testade med ett AND-Villkor men då blir Description "NULL"
Jag måste separera dom båda åt med varsitt alias, eftersom det bara finns ett description fält. Men det är 2 olika Descriptions. Hur gör jag det ?

Left outer join tblConstants on tblPostList.OfficeList = tblConstants.ConstantsID and tblPostList.CurrentstatusList = tblConstants.ConstantsID

Använder jag bara

Left outer join tblConstants on tblPostList.OfficeList = tblConstants.ConstantsID

Så får jag tillbaka "London" i description fältet, vilket är correct.

Använder jag bara

Left outer join tblConstants on tblPostList.CurrentstatusList = tblConstants.ConstantsID

Så får jag tillbaka "NOT SET" i description fältet, vilket också är correct. Men hur får jag in båda :)

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Jah, då får du joina mot samma tabell (tblCOnstants) två gånger med olika alias.

select t1.descr,t2.descr
from t t1 left join q on t1.id q.id1 
left join t t2 on q.id2 = t2.id
StevePMedlem sedan mars 2003751 inlägg
#5

Det är ju nämligen "2" olika ID's som jämförs.
tblPostList.OfficeList innehåller värdet "601" och tblPostList.CurrentstatusList innehåller "885" i den selectade posten.
tblConstants.ConstantsID "601" har värdet "London" i tblConstants.Description och
tblConstants.ConstantsID "885" har värdet "NOT SET" i tblConstants.Description.
Därför kan jag inte bara använda ett AND-villkor.

StevePMedlem sedan mars 2003751 inlägg
#6

Aha ok! Ska testa.
Jag skrev posten ovan precis innan jag såg din nya post, så strunta i den!

StevePMedlem sedan mars 2003751 inlägg
#7

Detdär blev väldigt snurrigt för mig. :)

Kan du visa med korrekta namn?

Det är alltså

tblConstants.ConstantsID
tblConstants.Description

tblPostList.OfficeList
tblPostList.CurrenstStatusList

Båda tblPostList kolumnerna relateras till tblConstants.ConstantsID och tblConstants.Description ger beskrivningen.

StevePMedlem sedan mars 2003751 inlägg
#8

Ah nu funkar det. Tack LarsG!

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb