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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème requete SQL : double et différent

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème requete SQL : double et différent

n°1945085
Askental
Posté le 26-11-2009 à 18:59:15  profilanswer
 

Bonjour,
 
J'ai deux problèmes avec une requête SQL.
Voici la requête :
 

Code :
  1. SELECT items.id, items.name, items.first_pic
  2. FROM items,bids
  3. WHERE items.user_id='.$this->params['id'].' AND bids.item_id!=items.id


 
Le but de cette requête est de prendre les items qui ne sont pas aussi dans la table bids.
 
Premier problème : le différent (!=) ne fonctionne pas. Ils m'affichent tous les items, même ceux qui sont dans la table bids. J'ai essayé avec <> mais toujours le même problème.
Deuxième problème : Quand je demande de m'afficher la requête, il m'affiche une fois chaque item qui est aussi de bids (alors qu'il ne devrait pas), mais il m'affiche les bons items en double !
Donc j'ai ceux que je ne veux pas une fois, et ceux que je veux en double.
Il n'y a pas de doublons dans la BDD.
 
Si quelqu'un pouvait me dire d'où vient le problème...  
Merci d'avance pour vos réponses

mood
Publicité
Posté le 26-11-2009 à 18:59:15  profilanswer
 

n°1945230
Skreo
Posté le 27-11-2009 à 10:19:28  profilanswer
 

Bonjour gente damoiselle,
 
Cette n'est pas une bonne approche pour votre problème.
Une façon simple de faire ce que vous voulez est de faire une jointure gauche avec une vérification IS NULL.
Par exemple :
 

Code :
  1. SELECT i.id, i.name, i.first_pic
  2. FROM items i
  3. LEFT JOIN bids b ON b.item_id=i.id
  4. WHERE i.user_id=$id AND b.item_id IS NULL


 
À voir si la requête reste performante avec des très grosses tables...

n°1945584
aideinfo
Posté le 28-11-2009 à 17:20:53  profilanswer
 

Depuis MySQL 5, il faut que dans ton ON, la première table soit la première table de ta jointure. La deuxième ligne doit donc être plutôt :

Code :
  1. LEFT JOIN bids b ON i.id=b.item_id


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile

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

  Problème requete SQL : double et différent

 

Sujets relatifs
Requête Where SQL[SAS] Problème SYMGET dans macro
Probleme requete[SQL Server] Quel utilisateur suis-je ?
Operateur doubléPerl [Modification d'un programme existant] Probleme avec If
Erreur mysql : corrupted double-linked listPlantage lors de l'execution d'une requete [PHP/MySQL]
Plus de sujets relatifs à : Problème requete SQL : double et différent


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