webForumDet fria alternativet
Logga in / Bli medlem

Knepig join..

Databaser & SQL

1 svar · 335 visningar · startad av rincewind

Medlem sedan nov. 2003104 inlägg
Frågan#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

Medlem sedan dec. 20025 483 inlägg
#2

Byt INNER mot LEFT.

252 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)