Rumah > Soal Jawab > teks badan
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
高洛峰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
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