php - requête statistique de table connectée mysql
天蓬老师
天蓬老师 2017-06-24 09:41:26
0
1
1156

Répétition de la table d'activité
id (identifiant auto-incrémenté), nom (nom de l'activité), send_time (heure de début), uid (ID utilisateur qui a créé l'activité)...
état de la table de statistiques
id (identifiant auto-incrémenté), mtype (type d'activité 1, 2, 3 ; 1 représente l'activité dans la table de répétition), sid (identifiant source, identifiant de la table d'activité), pid (identifiant de la personne), open_time (heure d'ouverture de l'e-mail)...

Interrogez la liste d'activités créée par l'utilisateur avec l'ID utilisateur 6 (y compris les informations : nom de l'activité, heure de début, nombre total d'e-mails, nombre total d'e-mails ouverts)
open_time>0 est l'enregistrement des e-mails ouverts, condition fixe mtype=1 ,sid = L'identifiant de la table active demandé depuis la répétition jusqu'à uid=6.
Maintenant, la requête est effectuée séparément, puis le tableau est traité.
Je ne sais pas comment vérifier les données requises dans un SQL. Demandez de l'aide à Dieu

天蓬老师
天蓬老师

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

répondre à tous(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

Étant donné que le lien de gauche est connecté deux fois, il peut y avoir des problèmes d'efficacité. Je cherche une meilleure façon

.

Mise à jour

Méthode 2 : Sous-requête

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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!