![](/img/trans.png)
[英]MySQL SELECT COUNT(*) From two tables based on multiple conditions
[英]Select from database with count and count based conditions?
我有一個表,其中包含與用戶有關的數據,以及兩個重要的列:
refer_count
,當在表中創建一個新條目時將其更新,並且referred_by
列設置為該用戶user_id
,並且referred_by
是引用他們的用戶的user_id
。
我想從表中選擇在特定日期后具有最高推薦人數的用戶。
例如:
如果有3個用戶,其中一個引用了另外2個用戶(假設用戶2
和3
),則在2/12/14上引用了用戶2,而在3/1/15上引用了用戶3。
如果截止時間是1/12/14,則返回用戶1並將Refer_count設置為2,但是如果截止時間是14年2月12日,則返回用戶1並將Refer_count設置為1。
我一直在想如何做到這一點,但我想不出一種可行的方法。 有辦法嗎?
這是通過MySQL。
編輯:我想我可能需要提供信息。
注冊日期( register_date
)被用作參考日期。 我需要使用截止日期后引用的用戶數來更新Refer_count,但是我需要獲取實際用戶。 這是用於“最高引薦來源”表的。 我不知道為什么我在想辦法時遇到這么多麻煩。
SELECT user_id FROM usertable WHERE (referal_date BETWEEN '2014-12-2' AND CURDATE())ORDER BY refer_count DESC;
那是個粗略的主意。 但是,如果將所有表都放在同一個表中,則應考慮對其進行規范化。 最好將引薦保存在單獨的表中。
獲取與最大的行refer_count
為您的日期條件referal_date
,使得它的后certainDate
:
SELECT user_id FROM table WHERE refer_count = (SELECT MAX(refer_count) FROM table) AND referal_date>certainDate;
請注意, WHERE
在SELECT
之前,因此它不會首先獲得最高計數,但是將使用日期條件進行過濾,然后獲得最高計數。
編輯:根據已編輯的問題更新查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.