私は自分のDBにこれらの構造を持っていました:
Table coupon
coupon_id , code, max_used
Table coupon_history
coupon_history_id, coupon_id, used_date
「coupon_history」で「coupon.max_used」が全履歴以下のクーポンデータを取得できますか? ここで行き詰まります。クーポンコードを取得する必要があります。私を助けてください。
以下で試すことができます:
select IF(count(*)<max_used,'less','more') as T,coupon.*
from coupon
LEFT JOIN coupon_history ON coupon_history.coupon_id = coupon.coupon_id
group by coupon_history.coupon_id
各行の「ステータス」をチェックして、それが max_used を超えているかどうかを確認できます。ちょうど別のアプローチ。
SQL フィドル: http://www.sqlfiddle.com/#!2/a5d0d/25
select coupon.* from coupon
join
(
select coupon_id, count(*) Count_Coupons_History
from coupon_history
group by coupon_id
) t on (coupon.coupon_id=t.coupon_id)
and (coupon.max_used<=t.Count_Coupons_History)