[Résolu] [MySQL] : count dans clause WHERE

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1744
Inscription: Mer Aoû 01, 2007 19:00

[Résolu] [MySQL] : count dans clause WHERE

Message le Lun Sep 08, 2008 13:56

Bonjour à tous,

j'ai un problème :

J'ai une table article (id_article, ...) et une table commentaires (id_com, id_article, ...)

j'aimerais faire une requête qui me sort tout les articles qui n'ont pas de commentaires

Merci à vous
Dernière édition par rudddy le Lun Sep 08, 2008 14:20, édité 1 fois.

ADIDASman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 106
Inscription: Sam Avr 17, 2004 15:47

Message le Lun Sep 08, 2008 14:07

Code: Tout sélectionner
select *
from article
where id_article
not in (select id_article from commentaires)


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1744
Inscription: Mer Aoû 01, 2007 19:00

Message le Lun Sep 08, 2008 14:15

clair, net, précis, ...

ADIDASman : du travail de pro

ADIDASman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 106
Inscription: Sam Avr 17, 2004 15:47

Message le Lun Sep 08, 2008 14:37

;)


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Lun Sep 08, 2008 15:17

Il manque pas une jointure pour améliorer le temps d'exécution ? Ou je pète peut-etre un plomb ^^

Code: Tout sélectionner
WHERE commentaires.id_article = article.id_article


:mrgreen:
Dernière édition par YoyoS le Lun Sep 08, 2008 15:20, édité 1 fois.


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1744
Inscription: Mer Aoû 01, 2007 19:00

Message le Lun Sep 08, 2008 15:19

merci pour ton aide

pour l'instant la base est petite (10000 articles et 70000 commentaires) mais j'espère que ça va grandir ... :-)


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Lun Sep 08, 2008 15:22

Bah c'est juste que j'ai l'impression qu'il va regarder dans tous les commentaires là, autant directement regarder dans les commentaires qui correspondraient à l'article non ? Je dis ptet des conneries la :s Quelqu'un confirme ?


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1744
Inscription: Mer Aoû 01, 2007 19:00

Message le Lun Sep 08, 2008 15:24

je teste sous phpmyadmin les 2 pour voir le temps d'execution

ADIDASman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 106
Inscription: Sam Avr 17, 2004 15:47

Message le Lun Sep 08, 2008 15:26

YoyoS a écrit:Bah c'est juste que j'ai l'impression qu'il va regarder dans tous les commentaires là, autant directement regarder dans les commentaires qui correspondraient à l'article non ? Je dis ptet des conneries la :s Quelqu'un confirme ?

Il veut la liste de tous les articles qui n'ont pas de commentaire, pas vérifier ceux qui en ont.

Test à faire pour voir si c'est plus optimisé :

Code: Tout sélectionner
select *
from article
where id_article
not in (select [distinct] id_article from commentaires)


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1744
Inscription: Mer Aoû 01, 2007 19:00

Message le Lun Sep 08, 2008 15:27

ADIDASman a écrit:
YoyoS a écrit:Bah c'est juste que j'ai l'impression qu'il va regarder dans tous les commentaires là, autant directement regarder dans les commentaires qui correspondraient à l'article non ? Je dis ptet des conneries la :s Quelqu'un confirme ?

Il veut la liste de tous les articles qui n'ont pas de commentaire, pas vérifier ceux qui en ont.


+1 :D


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Lun Sep 08, 2008 15:28

J'aurais plutôt fait ça moi, mais je me goure ptet:

Code: Tout sélectionner
select *
from article
where id_article
not in (select distinct id_article from commentaires WHERE commentaires.id_article = article.id_article)


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1744
Inscription: Mer Aoû 01, 2007 19:00

Message le Lun Sep 08, 2008 15:29

je sais plus quoi penser

mon coeur balance ...

ADIDASman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 106
Inscription: Sam Avr 17, 2004 15:47

Message le Lun Sep 08, 2008 15:30

YoyoS a écrit:J'aurais plutôt faire ça moi, mais je me goure ptet:

OK, je comprends ce que tu veux dire.
En faisant ce que j'ai dit, la "grosse" sous-requête n'est exécutée qu'une fois au lieu de nb_d_articles fois pour la "petite version".
Test à faire donc.

ADIDASman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 106
Inscription: Sam Avr 17, 2004 15:47

Message le Lun Sep 08, 2008 15:31

rudddy a écrit:je sais plus quoi penser

mon coeur balance ...

Fais des tests de performances, c'est le mieux !

(Et je suis intéressé par les résultats).


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Lun Sep 08, 2008 15:32

Ca dépend aussi s'il y a un index sur les deux id_article ou pas je crois.

[Résolu] [MySQL] : count dans clause WHERE

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités