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å-
6 svar · 245 visningar · startad av Brimba
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...
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å-
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
select max(id),parentid from
(select id from threads where parentid is null) dt
left join threads on dt.id = parentid
group by parentid
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.
Anledningen till att jag inte vill använda subselect är att jag vill kunna göra det på olika sätt.