All pastes #468346 Raw Edit

Mine

public sql v1 · immutable
·published 2007-05-03 01:41 UTC
rendered paste body
#-----------------------------#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 NULL AND galleries.status = 100 AND galleries_sites.gallery_id = galleries.id AND galleries_sites.thumb = 1 AND 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()LIMIT 1#----------------------------------------------------#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 NULL AND galleries.status = 100 AND galleries_sites.gallery_id = galleries.id AND galleries_sites.thumb = 1 AND 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);