Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1464 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Sous-requête et recherche boolean

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sous-requête et recherche boolean

n°1912103
polo7
Posté le 05-08-2009 à 22:10:05  profilanswer
 

Salut à tous,
Je tente désespérément de faire un requête et sous-requête.
J'ai 2 tables: category (champs id_cat et status) et images (champs id_img, id_cat et keywords).
J'aimerais obtenir une liste d'images ayant un mot clé et étant dans la catégorie avec status=0
 
Sans aucun problème avec une jointure, mais je n'arrive pas à le faire avec des sous requêtes, par souci de performance.
 
Merci de votre aide. :(

mood
Publicité
Posté le 05-08-2009 à 22:10:05  profilanswer
 

n°1912134
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-08-2009 à 23:08:53  profilanswer
 

Code :
  1. SELECT id_img
  2. FROM Images
  3. WHERE id_cat IN (SELECT id_cat FROM category WHERE STATUS=0)


Ceci dit, je vois pas pourquoi tu tiens tant à une sous requête... Contrairement à ce que tu dis, une jointure est largement plus performante qu'une sous-req


---------------
J'ai un string dans l'array (Paris Hilton)
n°1912137
polo7
Posté le 05-08-2009 à 23:29:17  profilanswer
 

Merci pour le code, ça fonctionne.
En tout cas ça fonctionne énormément mieux que ma jointure:
SELECT * FROM $table_images, $table_category WHERE (MATCH ($table_images.keywords) AGAINST (\"$sk_search\" IN BOOLEAN MODE)) AND $table_category.st_cat=0
 
Peut-être mal formulé.
Il faut bien s'améliorer.

n°1912140
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-08-2009 à 23:51:22  profilanswer
 

Oh my god, qu'est ce que c'est que cette jointure ? [:pingouino]
Et si tu essayais une vraie jointure ? :o

Code :
  1. SELECT id_img
  2. FROM Images INNER JOIN category ON images.id_cat = category.id_cat
  3. WHERE STATUS = 0 AND keywords NOT NULL


Message édité par Harkonnen le 05-08-2009 à 23:51:56

---------------
J'ai un string dans l'array (Paris Hilton)
n°1912201
rufo
Pas me confondre avec Lycos!
Posté le 06-08-2009 à 10:21:02  profilanswer
 

ben il avait pas fait de jointure, il se retrouvait donc avec un produit cartésien des 2 tables :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1912208
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-08-2009 à 10:26:33  profilanswer
 

Ah mais oui, j'avais pas vu qu'il avait pas mis de WHERE pour faire sa jointure [:mlc]
Tu m'étonnes que ça rame [:mlc]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1912514
polo7
Posté le 06-08-2009 à 17:04:44  profilanswer
 

oui, c'est juste, il me semblait que qqchose clochait.
en effet, on multiplie mes 150000 images par mes 1000 catégories, oups.
mais il y a tout de même un WHERE, ce qui me donnait le bon résultat.
merci pour le code, je vais donc modifier mes requêtes.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Sous-requête et recherche boolean

 

Sujets relatifs
comment créer une requête de type SELECT...WHERE avec vba[MySQL] Taille des fichiers temporaires d'une requête
requete redondanteConvertir le résultat d'une requête SQL en fichier excel
[EXCEL] Liste clients -> recherche géographiquerecherche matrice php
Diaporama avec requete sql.[RESOLU] Problème de requête et mysql_num_rows
Pattern Java | Probleme ecriture dans fichier texte.[MySQL] Requete avec JOIN : infos dans des bases différentes
Plus de sujets relatifs à : Sous-requête et recherche boolean


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR