Det kanske inte finns något som är rätt i detta sammanhang, men ser denna fel ut?
'SELECT distinct(s.id), pname, city, province, case when sp.shid is null then 0 else 1 end FROM search1 AS s
LEFT JOIN search_pics AS sp
ON s.id=sp.shid
WHERE s.advid = '+ str(@id) +'
ORDER BY '+ @sort