Php 复杂查询-获得推荐最多的人

Php 复杂查询-获得推荐最多的人,php,mysql,Php,Mysql,我正在尝试进行某种SQL查询,其中我只得到10个推荐最多的人,但至少有1个推荐 我的桌子看起来像这样: CREATE TABLE IF NOT EXISTS `beta_list` ( `id` int(10) NOT NULL AUTO_INCREMENT, `email` varchar(250) NOT NULL, `referrer` int(10) NOT NULL, `referral_code` int(10) NOT NULL, UNIQUE KEY `id`

我正在尝试进行某种SQL查询,其中我只得到10个推荐最多的人,但至少有1个推荐

我的桌子看起来像这样:

CREATE TABLE IF NOT EXISTS `beta_list` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `email` varchar(250) NOT NULL,
  `referrer` int(10) NOT NULL,
  `referral_code` int(10) NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
SELECT 
     email,
     referral_code as refcode,
     (SELECT COUNT(*) FROM beta_list WHERE referrer=refcode) as referrals
  FROM 
     beta_list 
  WHERE
     referrals > 0
  ORDER BY
     referrals DESC
  LIMIT
     10
我试过这样的方法:

CREATE TABLE IF NOT EXISTS `beta_list` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `email` varchar(250) NOT NULL,
  `referrer` int(10) NOT NULL,
  `referral_code` int(10) NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
SELECT 
     email,
     referral_code as refcode,
     (SELECT COUNT(*) FROM beta_list WHERE referrer=refcode) as referrals
  FROM 
     beta_list 
  WHERE
     referrals > 0
  ORDER BY
     referrals DESC
  LIMIT
     10
但它只是说“where子句”中的未知列“references”

我不是sql大师,我只是刚刚开始学习更复杂的sql查询,所以对于如何实现类似的功能,我将不胜感激


干杯

尝试此操作-添加外部查询以从内部查询提取结果-

select ref.email, ref.refcode, ref.referrals from 
(
  SELECT 
     email,
     referral_code as refcode,
     (SELECT COUNT(*) FROM beta_list WHERE referrer=refcode) as referrals
  FROM 
     beta_list
) as ref
WHERE
     ref.referrals > 0
ORDER BY
     ref.referrals DESC
LIMIT
     10
试一试:

SELECT email,referral_code as refcode,count(*) as referrals
FROM beta_list 
WHERE referrer = referral_code
GROUP BY email,referral_code
ORDER BY referrals DESC
LIMIT 10;

参考代码、推荐和电子邮件之间有什么关系。多做一点生意会有很大帮助。太棒了!非常好用,非常感谢:)!(需要等待2分钟才能接受答案)