dopo ore ore e ancora ore di ricerche ho risolto così:
codice:
SELECT * FROM (
SELECT
CASE
WHEN @id != t.idnamecollection THEN @row_num := 1
ELSE @row_num := @row_num + 1
END AS rownum,
ct.threadidcollection,
idnamecollection, namecollection, useriddetail,@id := t.idnamecollection FROM `0mastertol1_collection_details` t
LEFT JOIN `0mastertol1_collection` ct ON ct.codecollection = t.idnamecollection
JOIN (SELECT @id := NULL, @row_num := 0) a
) r
WHERE rownum < 4
AND r.useriddetail = 4
Praticamente con il CASE in una subquery creo un contatore(si incrementa quando vede oggetti della stessa collezione) , fuori dalla subquery verifico che quel contatore non superi il numero di oggetti per collezione che voglio estrarre.
ho paura solo di aver messo qualche porzione di codice di troppo non essendo esperto di mysql..
Spero di essere stato abbastanza chiaro nella spiegazione magari l'ho esposta troppo difficile...