这是我自己收藏的sql,本人比较菜,sql有较大的优化,希望可以帮助到诸位一点吧,可以优化的可以留言谢谢
mysql 随机函数 RAND() LIMIT 10 随机抽取10位,
在所有用户中抽取10位可以这么写: select user_name from table_name ORDER BY RAND() LIMIT 10 最简单的写法
select * from
(SELECT fd_user_phone AS fdUserPhone, fd_user_real_name AS fdUserRealName ,fd_user_identity AS fdUserIdentity FROM tb_marathon_userinfo us
WHERE us.fd_user_id NOT IN
(select ss.fd_user_id FROM (SELECT u.fd_user_id FROM
tb_green_card g
LEFT JOIN tb_marathon_userinfo u ON g.fd_user_phone = u.fd_user_phone
GROUP BY g.fd_user_phone ORDER BY count(1) DESC limit 0,10) as ss)
ORDER BY RAND() LIMIT 10) tab INNER JOIN
(select fd_user_phone,count(fd_green_card_num) AS fdGreenCardCount from tb_green_card group by fd_user_phone) g on tab.fdUserPhone=g.fd_user_phone