Du kan ju slå ihop dina frågor till en med group by:
select count(lineitemID) as ogrish, lineitemID from tbl_lineitems tl, tbl_events te where te.eventsID = tl.lineitemID and te.publish = 1 group by lineitemID order by ogrish desc
Den här frågan kommer för varje lineitemID att returnera hur många förekomster som finns och de sorteras så att de som förekommer mest kommer först.
Om din DBMS stödjer en funktion som TOP eller LIMIT så kan du ju lägga till det för att få ut ett begränsat antal värden, annars så är det bara att ta första värdet i RecordSetet.
Hoppas detta är till någon hjälp.
------------------ essentitia preter non sans multiplicandum