我有以下 MySQL 表...
用户表
| id | account_number | referred_by |
+-----+----------------+-------------+
| 44 | 100 | 200 |
+-----+----------------+-------------+
| 182 | 200 | 500 |
+-----+----------------+-------------+
| 184 | 300 | 500 |
+-----+----------------+-------------+
收入表
| id | account_number | earnings |
+-----+----------------+-------------+
| 44 | 100 | 50.00 |
+-----+----------------+-------------+
| 182 | 200 | 20.00 |
+-----+----------------+-------------+
| 184 | 300 | 10.00 |
+-----+----------------+-------------+
例如,我正在尝试获取推荐成员(member)赚取的total_earnings 总和。 如果成员(member)的总收入为 30.00refered_by 帐号“500”,并且我已尝试执行以下 MySQL 查询...
SELECT SUM(earnings)
FROM earnings
WHERE account_number IN
(SELECT account_number FROM users WHERE referred_by = 500);
但是这太慢了。我该如何优化这个查询?
最佳答案
会尝试这个吗?
SELECT SUM(earnings.earnings)
FROM earnings INNER JOIN users USING(account_number)
WHERE users.referred_by = 500;
用户表应包含INDEX(referred_by, account_number)
,收入应包含INDEX(account_number)
关于Mysql查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311929/