webForumDet fria alternativet
Logga in / Bli medlem

Joinproblem :(

Databaser & SQL

6 svar · 245 visningar · startad av Brimba

Medlem sedan dec. 19995 876 inlägg
Trådstart#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...

Medlem 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å-

Medlem sedan dec. 19995 876 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 :)

Medlem 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?

Medlem 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
Medlem sedan dec. 19995 876 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.

Medlem sedan dec. 19995 876 inlägg
#7

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

259 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)