webForumDet fria alternativet

Joinproblem :(

6 svar · 245 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19995 875 inlägg
#1

Jag försöker göra en enkel join, men den säger dumma saker till mig hela tiden :(

...
FROM 
Threads t1
LEFT JOIN (select max(id) from Threads where parentID = t1.id) t3 ON t1.id = t3.id
...

sql skrev:

The column prefix 't1' does not match with a table name or alias name used in the query.

Varför då? Jag har ju t1 där, det ser jag ju jättetydligt...

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Nej, det är ju klart att den klagar. T1 ligger utanför den härledda tabellens synfält.

Du får nog beskriva lite mer vad du vill och så-

BrimbaMedlem sedan dec. 19995 875 inlägg
#3

Jag har en tabell "Threads".

kolumner
--------------------
id
parentID

först hämtar jag alla id där parentID är null, sedan vill jag joina in det id som är störst där parentID är samma som id.

Det skulle vara enkelt med en subquery i selectsatsen men jag vill inte göra så.

exempelvis

id parentID
1 null
2 1
3 1
4 null

nu vill jag med min select få ut följande:

id id_x
1 3
4 null

där id_x då är max(id) där parentID är 1 (id)

Hoppas det beskriver mitt problem :)

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Varför skulle du få med

4 null

och inte

1 null

?

och varför vill du inte använda subselect?

LarsGMedlem sedan dec. 200012 464 inlägg
#5
select max(id),parentid from 
(select id from threads where parentid is null) dt
left join threads on dt.id = parentid
 group by parentid
BrimbaMedlem sedan dec. 19995 875 inlägg
#6

eftersom parentID har värdet 1 i sig, medan det inte finns någon post som har parentID 4. Då skall den bli null, annars skall den hämta det id som har max(id) där id = parentID.

BrimbaMedlem sedan dec. 19995 875 inlägg
#7

Anledningen till att jag inte vill använda subselect är att jag vill kunna göra det på olika sätt.

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