Plusieurs COUNT dans une même requète
Résolu
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
Bonjour
J'ai une requète qui vérifie si le nom existe déjà dans une table, je souhaiterai que cette vérification se fasse également dans deux tables.
Pouvez-vous m'aider s'ils vous plait, voici ma requète pour la vérification dans 1 table qui est fonctionnelle.
Alors comment rajouter une autre table, j'avais déjà essayé plusieurs façon mais en vain.
Dans l'autre table "adherent" et les champs "nom_adherent" et "prenom_adherent"
Merci
J'ai une requète qui vérifie si le nom existe déjà dans une table, je souhaiterai que cette vérification se fasse également dans deux tables.
Pouvez-vous m'aider s'ils vous plait, voici ma requète pour la vérification dans 1 table qui est fonctionnelle.
Alors comment rajouter une autre table, j'avais déjà essayé plusieurs façon mais en vain.
Dans l'autre table "adherent" et les champs "nom_adherent" et "prenom_adherent"
Merci
$sql = "SELECT COUNT(nom_ami) as NB FROM tb_ami WHERE nom_ami = '$this->nom_ami' AND prenom_ami = '$this->prenom_ami' GROUP BY 'nom_ami'"; $requete = $this->bdd->prepare($sql); $requete->execute(); $resultat = $requete->fetchAll(); return isset($resultat[0]['NB']) ? $resultat[0]['NB'] : 0;
A voir également:
- Select count 2 tables
- Supercopier 2 - Télécharger - Gestion de fichiers
- Tables des matières word - Guide
- 2 ecran pc - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
5 réponses
Bonjour papyclic
Si vous avez des tables reliées entre elles, il est recommandé d'utiliser des clés primaires.
Exemple
Dans le cas de jointure, pas la peine de remettre nom, prenom.
Pour faire une requête sql reliant les deux tables il faut indiquer le lien qui les relie
exemple
Si vous avez des tables reliées entre elles, il est recommandé d'utiliser des clés primaires.
Exemple
Tables tb_ami
id_ami, nom_ami, prenom_ami, ....
tb_adherent
id_adherent, id_ami, ....
Dans le cas de jointure, pas la peine de remettre nom, prenom.
Pour faire une requête sql reliant les deux tables il faut indiquer le lien qui les relie
exemple
Select tb_adherent, tb_ami, tb_nom
from tb_adherent, tb_ami
where tb_adherent,.id_ami = tb_ami.id_ami
Bonjour,
il faudrait que je sache comment vos tables sont reliées entre elles.
Si vous vous utiliser la valeur du Count il faut utiliser HAVING à la place de WHERE ou AND
il faudrait que je sache comment vos tables sont reliées entre elles.
Si vous vous utiliser la valeur du Count il faut utiliser HAVING à la place de WHERE ou AND
Bonjour
Mes 2 tables ne sont pas relié entre elles en fait.
Lorsque je rajoute un membre la condition s'effectue bien si il y a un membre du même nom.
Mais je voudrais que cette condition s'effectue également avec une autre table, une jointure en fait.
Alors moi j'avais essayé un truc du genre, met en vain.
Mes 2 tables ne sont pas relié entre elles en fait.
Lorsque je rajoute un membre la condition s'effectue bien si il y a un membre du même nom.
Mais je voudrais que cette condition s'effectue également avec une autre table, une jointure en fait.
$sql = "SELECT COUNT(nom_ami) as NB FROM tb_ami WHERE nom_ami = '$this->nom_ami' AND prenom_ami = '$this->prenom_ami' GROUP BY 'nom_ami'"; $requete = $this->bdd->prepare($sql); $requete->execute(); $resultat = $requete->fetchAll(); return isset($resultat[0]['NB']) ? $resultat[0]['NB'] : 0;
Alors moi j'avais essayé un truc du genre, met en vain.
$sql = "SELECT (SELECT COUNT(nom_ami)FROM tb_ami) as NB, (SELECT COUNT(nom)FROM tb_adherent) as NB2, WHERE nom_ami = '$this->nom_ami' AND prenom_ami = '$this->prenom_ami' AND nom = '$this->nom' AND prenom = '$this->prenom' GROUP BY 'nom_ami, nom'"; $requete = $this->bdd->prepare($sql); $requete->execute(); $resultat = $requete->fetchAll(); return isset($resultat[0]['NB']) ? $resultat[0]['NB'] : 0;
Salut,
Avec deux sous requêtes tu peux t'en sortir sans jointure :
Avec deux sous requêtes tu peux t'en sortir sans jointure :
SELECT (T1.NB1+T2.NB2) as NB FROM ( SELECT COUNT(nom_ami) as NB1 FROM tb_ami WHERE nom_ami = '$this->nom_ami' AND prenom_ami = '$this->prenom_ami' ) AS T1, ( SELECT COUNT(nom_adherent) as NB2 FROM tb_adherent WHERE nom_adherent = '$this->nom' AND prenom_adherent = '$this->prenom' ) AS T2
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question