#-----------------------------#This query works, but is slow#-----------------------------SELECT galleries.id, galleries.link, galleries.title, galleries.pics, galleries.vids, affiliate_sites.website FROM (galleries, affiliate_sites_sites, affiliate_sites, galleries_sites) LEFT JOIN displayed_galleries ON (galleries.id = displayed_galleries.id) WHERE galleries.affiliate_site_id = affiliate_sites.id AND displayed_galleries.id IS NULLAND galleries.status = 100AND galleries_sites.gallery_id = galleries.id AND galleries_sites.thumb = 1AND galleries_sites.site_id = '3'AND affiliate_sites_sites.affiliate_site_id = affiliate_sites.id AND affiliate_sites_sites.site_id = '3'ORDER BY RAND()#----------------------------------------------------#This query is fast, but sometimes selects blank rows#----------------------------------------------------SELECT galleries.id, galleries.link, galleries.title, galleries.pics, galleries.vids, affiliate_sites.website FROM (galleries, affiliate_sites_sites, affiliate_sites, galleries_sites) LEFT JOIN displayed_galleries ON (galleries.id = displayed_galleries.id) JOIN (SELECT r1.random_id FROM galleries_holes AS r1 JOIN (SELECT (RAND() * (SELECT MAX(row_id) FROM galleries_holes)) AS row_id) AS r2 WHERE r1.row_id >= r2.row_id ORDER BY r1.row_id ASC LIMIT 1) as rows ON (galleries.id = random_id)WHERE galleries.affiliate_site_id = affiliate_sites.id AND displayed_galleries.id IS NULLAND galleries.status = 100AND galleries_sites.gallery_id = galleries.id AND galleries_sites.thumb = 1AND galleries_sites.site_id = '3'AND affiliate_sites_sites.affiliate_site_id = affiliate_sites.id AND affiliate_sites_sites.site_id = '3'#-----------------------------------------------------------------#This query is fast, but i cannot control which lines are selected#-----------------------------------------------------------------SELECT * FROM galleries JOIN (SELECT r1.random_id FROM galleries_holes AS r1 JOIN (SELECT (RAND() * (SELECT MAX(row_id) FROM galleries_holes)) AS row_id) AS r2LEFT JOIN galleries on (galleries.id=r2.row_id) # i added to try to filter WHERE r1.row_id >= r2.row_idAND galleries.id = 74580 # i added to try to filter ORDER BY r1.row_id ASC LIMIT 1) as rows ON (id = random_id);