SUM de 2 champs identiques dans deux tables mysql différentes

JM21

Nouveau WRInaute
Bonjour,

Je sais que le sujet a déjà +/- été abordé mais je n'y trouve pas mon bonheur...
J'ai un site sous SPIP et mon problème est le suivant : j'aimerais additionner les champs visites apparaissant dans deux tables différentes sur une période donnée.

Concrètement, j'ai la table spip_visites_articles qui comprend id_article, date, visites, maj
et la table spip_referers_articles qui comprend id_article, referer_md5, referer, visites, maj

J'aimerais donc additionner les visites de spip_visites_articles et les visites de spip_referers_articles.

J'arrive à faire ces requêtes pour chacune des tables en individuel (deux fichiers différents) mais je n'arrive pas regrouper ces requêtes sur un seul et même fichier.


J'ai fait ça pour spip_referers_articles
<?php
$query = "SELECT SUM(spip_referers_articles.visites) FROM spip_referers_articles WHERE spip_referers_articles.maj >= '2014' ";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Nombre de lectures d'<b><u>ARTICLES</u></b> sur l'<b>année en cours</b> : ". $row['SUM(spip_referers_articles.visites)'];
echo "<br />";
}
?>

et ça pour spip_visites_articles

<?php
$query = "SELECT SUM(spip_visites_articles.visites) FROM spip_visites_articles WHERE spip_visites_articles.date >= '2014' ";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Nombre de lectures d'<b><u>ARTICLES</u></b> sur l'<b>année en cours</b> : ". $row['SUM(spip_visites_articles.visites)'];
echo "<br />";
}
?>

Je n'arrive donc pas à additionner les deux SUM...

Est-ce que quelqu'un pourrait m'aider SVP ?
 

baud74

WRInaute impliqué
<?php
$query = "SELECT SUM(spip_referers_articles.visites) FROM spip_referers_articles WHERE spip_referers_articles.maj >= '2014' ";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
$somme1 = $row['SUM(spip_referers_articles.visites)'];
}
$query = "SELECT SUM(spip_visites_articles.visites) FROM spip_visites_articles WHERE spip_visites_articles.date >= '2014' ";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
$somme2 = $row['SUM(spip_visites_articles.visites)'];
}

$total = $somme1+$somme2;
echo "Nombre de lectures d'<b><u>ARTICLES</u></b> sur l'<b>année en cours</b> : ".$total;
?>
 

Bool

WRInaute passionné
Hello,

naïvement j'aurais fait ça en une seule requête :
Code:
select SUM(visites) as visites
from (
    SELECT SUM(spip_referers_articles.visites) as visites
    FROM spip_referers_articles WHERE spip_referers_articles.maj >= '2014'
    UNION ALL
    SELECT SUM(spip_visites_articles.visites)
    FROM spip_visites_articles WHERE spip_visites_articles.date >= '2014'
    ) x;
 

Discussions similaires

Haut