2017-06-25 47 views
0

嗨,我是新手,在MySQL如何計算在SQL用戶優惠券 - mysql的

我想算用戶優惠券令牌被其他人使用的應用程序使用

我目前使用的是PHP循環來計算有多少人使用用戶令牌

是否有任何方法可以在一個查詢中執行此操作,以返回所有用戶及其使用的優惠券號碼?我想是這樣的SELECT user.id , Count(payment.id) from ..

請注意,我不使用user.id = ?

我循環這個功能實現每個用戶的優惠券使用數量太慢

public function countInvitationByUserID($id) { 
     $query = $this->db->query(" 
      SELECT * FROM payment, coupon, users 
      WHERE payment.payment_coupon_id = coupon.id 
      AND coupon.coupon_token = users.user_coupon_token 
      AND users.id = ? 
      AND payment.payment_status = 1", array($id) 
     ); 
     return $query->num_rows(); 
    } 

有人可以幫助把所有這些寫在一個查詢中?

感謝

+0

您可以請詳細說明模式 –

+0

@ManojMohan每個用戶都有一張優惠券,其他人可以通過該優惠券註冊(5位數字)。我想通過其他人註冊的用戶優惠券爲每個用戶計算分數 –

+1

請參閱https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-我想成爲一個非常簡單的sql查詢 – Strawberry

回答

1
SELECT 
    US.user_id, COUNT(CO.id) 
FROM 
    payment PT 
    INNER JOIN coupon CO ON PT.payment_coupon_id=CO.id 
    INNER JOIN users US ON US.user_coupon_token=CO.coupon_token 

WHERE 
    PT.payment_status = 1 
GROUP BY US.user_id; 

嘗試上面的查詢。

希望這會幫助你。

+0

感謝它的工作 –