webForumDet fria alternativet

Knepig join..

1 svar · 335 visningar · startad av rincewind

rincewindMedlem sedan nov. 2003104 inlägg
#1

Jag har följande tabell:

Anta att jag har följande "en till många tabell" vid namn tbl_gather:
ID | leftsideID | rightsideID
--------------------------------
1 | 2 | 0
2 | 0 | 2
3 | 1 | 0
4 | 3 | 0
5 | 0 | 1

Och tabellen tbl_leftside ser ut som följande:
ID | leftSideData
-----------------------
1 | the
2 | This
3 | entire

Och tabellen tbl_rightside ser ut som följande:
ID | rightSideData
-----------------------
1 | query
2 | is

Vad jag vill göra är en join äver tbl_gather.. Som ger följande data:
ID | leftD | rightD
-----------------------
1 | This |
2 | | is
3 | the |
4 | entire |
5 | | query

Dvs något liknande
SELECT gather.ID, left.leftSideData as leftD, right.rightSideData as rightD FROM tbl_gather gather INNER JOIN tbl_leftside left ON gather.leftsideID=left.ID INNER JOIN tbl_rightside right ON gather.rightsideID=right.ID order by gather.ID

Denna är fel.. Vill alltså joina från tbl_left om leftID är större än noll, annars from tbl_right om rightsideID är större än noll..

Någon SQL guru där ute som har en lösning på detta???

Regardz,
-- Rincewind

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Byt INNER mot LEFT.

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