php - pertanyaan statistik jadual bersambung mysql
天蓬老师
天蓬老师 2017-06-24 09:41:26
0
1
1167

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(1)
小葫芦
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!