2017-07-18 24 views
0

私はテーブルに次のフィールドがあります。名前 mysqlのテーブルからデータを取得

    1. は、私は以下のように引きレコードをしたい
    2. review_status
    3. のuser_id
    4. USER_EMAILた​​audit_id。

      • テーブルには、各user_emailの300のランダムレコードが含まれている必要があります。例えば

    : 表は12000行があります。 8ユニークなuser_email。だから、レコードを引っ張っている間、私はそれぞれのuser_emailごとに300個のランダムな(別個ではない)レコードを取得する必要があります。私は2400レコードを得るべきです。私は以下を試した。このことから

    select SR.name, 
           MCR.cr_id, 
           MCR.review_status, 
           MCR.last_update_time, 
           MCR.description, 
           CNT.id as user_id, 
           CNT.email as user_email 
    from   manual_cr_review as MCR, 
         selling_rule as SR, 
         contact as CNT 
    join selling_rule SR 
    join manual_creative_review MCR 
    join contact CNT on SR.id=MCR.rule_id 
           and CNT.id=MCR.contact_id 
    MCR.last_update_time >='2017-07-10 00:00:00' 
    and MCR.last_update_time <'2017-07-14 23:59:59' 
    and CNT.id in (123,234) 
    order by 
    rand() limit 600; 
    

    は、私が2人のユーザーのために、ランダムなレコードを取得していますが、その正確ではない300 & 300私はこれを修正する必要があります。

    変更されています。 !!!

  • 答えて

    0

    次のクエリを試すことができます:

    SELECT b.* 
    FROM (
        SELECT distinct user_email 
        FROM table 
        LIMIT 2 
    ) a, 
    (SELECT * 
    FROM table 
    WHERE user_email = a.user_email 
    LIMIT 300) b; 
    
    関連する問題