dj-smoye
Messages postés6Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention28 avril 2006
-
28 avril 2006 à 15:24
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 2007
-
2 mai 2006 à 13:30
Bonjour tlm,
Voilà j'ai un soucis avec la requête ci-dessous:
SELECT
D1.id_users AS User1_Id,
D1.num_obj AS User1_ObjectId,
D2.id_users AS User2_Id,
D2.num_obj AS User2_ObjectId
FROM tbl_in C1
INNER JOIN tbl_out D1
ON (C1.num_obj = D1.num_obj)
INNER JOIN tbl_in C2
ON (D1.id_users = C2.id_users)
INNER JOIN tbl_out D2ON ((C2.num_obj D2.num_obj) AND (C1.id_users D2.id_users))
J'ai deux tables avec une structure identique (4 champs), une est pour les objets à donner et l'autre pour les objets recherché. Dans chacune il y a un champ avec le numéro de l'objet et un autre avec l'id de l'utilisateur. Mon but est de comparer ces deux tables et ressortir la liste des objets que par exemple l'utilisateur X pourrait échanger avec l'utilisateur Y mais uniquement si chacun a un objet à donner. Si l'utilisateur X donne un objet et en cherche un autre mais que personne ne cherche l'objet qu'il donne ou ne donne l'objet qu'il cherche alors il ne doit pas y avoir de résultat. Avec cette requête ça me sort bien les comparaisons mais dans les deux sens, c'est à dire que si utilisateur X donne l'objet 3 et cherche le 4 et que l'utilisateur Y donne le 4 et cherche le 3 ça me donnera deux résultats et si chaque utilisateur donne et cherche plus d'un objet ça me retourne chaque possibilité d'échange alors que j'aurais besoin de savoir ce que X peut échanger avec Y sans prendre en compte les inversions d'objets.