cari

Rumah  >  Soal Jawab  >  teks badan

php - pertanyaan statistik jadual bersambung mysql

Latihan jadual aktiviti
id (id penambahan sendiri), nama (nama aktiviti), masa_hantar (masa mula), uid (ID pengguna yang mencipta aktiviti)...
status jadual statistik
id (id penambahan sendiri), mtype (jenis aktiviti 1 , 2, 3; 1 mewakili aktiviti dalam jadual latihan), sid (id sumber, id jadual aktiviti), pid (id orang), open_time (masa e-mel terbuka)...

Soal senarai aktiviti yang dibuat oleh pengguna dengan ID pengguna 6 (termasuk maklumat: nama aktiviti, masa mula, jumlah bilangan e-mel, jumlah bilangan e-mel yang dibuka)
open_time>0 ialah rekod e-mel terbuka, keadaan tetap mtype=1 ,sid = Id jadual aktif yang ditanya dari latihan melalui uid=6.
Kini pertanyaan dilakukan secara berasingan dan kemudian tatasusunan diproses.
Saya tidak tahu cara menyemak data yang diperlukan dalam sql. Minta pertolongan Allah

天蓬老师天蓬老师2741 hari yang lalu1215

membalas semua(1)saya akan balas

  • 高洛峰

    高洛峰2017-06-24 09:43:26

    SELECT
        R.name,
        R.send_time,
        COUNT(DISTINCT S1.id) send_times,
        COUNT(DISTINCT S2.id) open_times
    FROM rehearse R
    LEFT JOIN
        statis S1
    ON
        R.id = S1.sid AND S1.mtype = 1
    LEFT JOIN
        statis S2
    ON
        R.id = S2.sid AND S2.mtype = 1 AND open_time > 0
    WHERE
        R.uid = 6
    GROUP BY
        R.id

    Memandangkan pautan kiri disambungkan dua kali, mungkin ada masalah kecekapan saya sedang mencari cara yang lebih baik

    Kemas kini

    Kaedah 2: Subkueri

    SELECT
        R.name,
        R.send_time,
        COUNT(S.id) send_times,
        (SELECT COUNT(S.id) FROM S WHERE AND S.open_time > 0) open_times
    FROM
        rehearse R
    LEFT JOIN
        (SELECT * FROM statis WHERE mtype = 1 GROUP BY sid, open_time AND sid = R.id) S

    balas
    0
  • Batalbalas