Requete MYSQL

Résolu/Fermé
Vin - Modifié par Vin le 20/04/2011 à 10:56
 Vin - 20 avril 2011 à 11:22
Bonjour,

Je suis à la recherche d'une méthode de faire une "comparaison" dans une base afin de compter.

Je m'explique, ma table est formée comme ceci :

ID | title | ... | topic_pere

Ce que je voudrais faire c'est :

SELECT * FROM posts WHERE topic_pere = ID

mais en utilisant les valeurs de ID

example de données dans la base :

1 | titre1 | NULL
2 | titre2 | NULL
3 | titre3 | 2
4 | titre4 | 2

je voudrais donc, afin de les compter, afficher le nombre de "FILS" de 2, soit 2 fils ( "3" et "4")

D'avance merci

3 réponses

Blopette Messages postés 315 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 3 octobre 2012 273
20 avril 2011 à 11:11
Bonjour,

si j'ai bien compris, ce que tu cherches c'est :

SELECT count(*) FROM posts WHERE topic_pere = ID
0
Oui mais cela ne marche pas, car il compare la valeur de topic_pere avec "ID" et non pas la valeur de ID :D
0
Blopette Messages postés 315 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 3 octobre 2012 273
20 avril 2011 à 11:18
Ah. Tu codes en quoi ? Si c'est php, tu peux récupérer la valeur "2" dans ID, et ensuite concaténer :

$sql = "SELECT count(*) FROM posts WHERE topic_pere ="+$ID


Sinon, tu fais deux requêtes imbriquées, où la deuxième consistera à récupérer l'ID que tu cherches (je sais pas comment tu vas le récupérer donc j'ai mis au pif pour la deuxième requête) :

SELECT count(*) FROM posts WHERE topic_pere = (SELECT id FROM topics WHERE titre="titre")
0
l'imbrication fonctionne a merveille, merci :)
0