Bonjour à tous.
j'ai un problème avec une jointure sur deux tables que je n'arrive pas à résoudre.
J'ai une table, IMBIENS, qui comprend des enregistrements de produits.
J'ai une autre table, IMMEDIAS, qui comprend les médias correspants à chaque produit.
Un produit peut n'avoir aucun media associé, comme une infinité (normalement 32 pour le moment, mais infini à théorie).
Les tables sont reliées par un champ qui s'appele BICOD, qui est identique sur les deux tables et qui représente le code de l'enregistrement dans IMBIENS.
Le but, c'est de récupérer les infos dans la base IMBIENS (le code dans l'exemple donné ci-dessous, mais une 10aine d'autres en réalité) plus le média numéro 1 seulement.
J'ai donc fait cette requete sur les deux tables:
Qui me renvoie ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT DISTINCT IMBIENS.BICOD AS BICOD,IMMEDIAS.MEDCHEMIN AS MEDCHEMIN FROM IMBIENS LEFT JOIN IMMEDIAS ON IMBIENS.BICOD = IMMEDIAS.BICOD WHERE (IMBIENS.BIVENTE = 0 AND IMBIENS.BIANNULE = 0 AND IMBIENS.BICOD IS NOT NULL AND IMBIENS.BITYPOP = 1) AND MEDTYPE = 1 AND MEDNUM = 1 order by bicod asc
Le problème vient des doubles enregistrements renvoyés, un avec MEDCHEMIN à NULL, et un avec la valeur recherchée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 BICOD | MEDCHEMIN ---------------------------- 1018 | NULL 1022 | NULL 1022 | 1022_1.JPG 1025 | NULL 1025 | 1025_1.JPG 1029 | NULL 1029 | 1029_1.JPG 1044 | NULL 1044 | 1044_1.JPG etc ...
J'essai de supprimer celui avec la valeur nulle, mais je n'y arrive pas.
Si quelqu'un a une idée ...
Merci d'avance.
PS: J'ai oublié de préciser que tout ceci se passe sur le Serveur de Base de Données Hyperfile de PCSOFT.
Partager