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


rudddy
WRInaute accro
WRInaute accro
 
Messages: 2570
Inscription: 1 Aoû 2007

[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 discret
WRInaute discret
 
Messages: 106
Inscription: 17 Avr 2004

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: 2570
Inscription: 1 Aoû 2007

Message le Lun Sep 08, 2008 14:15

clair, net, précis, ...

ADIDASman : du travail de pro

ADIDASman
WRInaute discret
WRInaute discret
 
Messages: 106
Inscription: 17 Avr 2004

Message le Lun Sep 08, 2008 14:37

;)


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

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: 2570
Inscription: 1 Aoû 2007

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: 3827
Inscription: 14 Sep 2006

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: 2570
Inscription: 1 Aoû 2007

Message le Lun Sep 08, 2008 15:24

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

ADIDASman
WRInaute discret
WRInaute discret
 
Messages: 106
Inscription: 17 Avr 2004

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: 2570
Inscription: 1 Aoû 2007

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: 3827
Inscription: 14 Sep 2006

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: 2570
Inscription: 1 Aoû 2007

Message le Lun Sep 08, 2008 15:29

je sais plus quoi penser

mon coeur balance ...

ADIDASman
WRInaute discret
WRInaute discret
 
Messages: 106
Inscription: 17 Avr 2004

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 discret
WRInaute discret
 
Messages: 106
Inscription: 17 Avr 2004

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: 3827
Inscription: 14 Sep 2006

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

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

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