0
을 계산 ...MySQL의 쿼리는 합계를 얻고 지금 다음 쿼리를 사용하고
SELECT id, account_number,
(SELECT count(*)
FROM `member_tbl` t2
WHERE t2.referred_by = t1.account_number
) AS total_referred
FROM `member_tbl` t1;
을 그리고 그 다음과 같은 결과를 제공합니다 ...
id - id of memenr
account_number - account number of user
total_referred - total number of members referred by account_number
하지만 우리는 좀 더 싶어합니다
이total_reffered2 - total number of members that THEY(all accounts referred by account_number) all referred
total_reffered3 - total number of members that referred by all members of total_reffered2
확인하시기 바랍니다 다음과 같은 결과 ... mysql fiddle
및 mysql fiddle data에 따라, 쿼리는 다음과 같은 값을 반환해야합니다 ...
| id | account_number | referred_by1 | referred_by2 | referred_by3
+----+-----------------+---------------+--------------+-------------
| 1 | ac203003 | 0 | 0 | 0
+----+-----------------+---------------+--------------+-------------
| 2 | ac203004 | 1 | 1 | 0
+----+-----------------+---------------+--------------+-------------
| 3 | ac203005 | 2 | 1 | 1
+----+-----------------+---------------+--------------+-------------
내가 당신에게 또 다른 예
을주게 모든 구성원은 항상 다음 10 개 추천을했다 ... 경우
referred_by1 = 10
referred_by2 = 100
referred_by3 = 1000
혼란 스럽습니다. 어떻게이 쿼리를 작성합니까?
답장을 보내 주셔서 감사합니다. 메인 DB에서 시도해 볼 것이고, 그러면 다시 알려 드리겠습니다. 감사합니다. – seoppc
Nice find but EXPLAIN이 DEPENDENT SUBQUERY에서 6 개의 행을 보여주고 색인을 생성하면 속도가 향상되지 않기 때문에 아마도 더 큰 세트에서 느려질 것입니다. –
@RaymondN 그래서 속도를위한 솔루션은 무엇입니까? 우리의 db가 실제로 10,000 행 정도 크기 때문에 – seoppc