dachshund Posted January 15, 2015 Share Posted January 15, 2015 Hi, I'm having a bit of trouble. I want to order the same 9 results by RAND(). Currently I have them ordered by 'avg' (average views) and that's working fine, but when I add a sub query to make those 9 results scatter by random it's causing some trouble. Code I currently have that works: $sql = "SELECT *, views / HOUR(TIMEDIFF(NOW(), date)) as avg FROM content WHERE date BETWEEN CURDATE() - INTERVAL 30 DAY AND NOW() - INTERVAL 2 HOUR AND views > 600 AND live = '0' ORDER BY avg DESC LIMIT 9"; What I'm trying to achieve but isn't showing any results: $sql = "SELECT * FROM (SELECT *, views / HOUR(TIMEDIFF(NOW(), date)) as avg FROM content WHERE date BETWEEN CURDATE() - INTERVAL 30 DAY AND NOW() - INTERVAL 2 HOUR AND views > 600 AND live = '0' ORDER BY avg DESC LIMIT 9) ORDER BY RAND()"; Quote Link to comment Share on other sites More sharing options...
Solution Barand Posted January 15, 2015 Solution Share Posted January 15, 2015 A table subquery needs to be given a table alias SELECT * FROM ( SELECT ... ) as top9 ORDER BY RAND() Quote Link to comment Share on other sites More sharing options...
dachshund Posted January 15, 2015 Author Share Posted January 15, 2015 perfect, thanks Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.