Jointure sql problème inner join

  • Auteur de la discussion Auteur de la discussion melodide
  • Date de début Date de début
Nouveau WRInaute
Je veux créer un composant php qui me renvoie un tableau résultant d'une requête sql. Tout fonctionne sauf pour une jointure et je ne comprend pas pourquoi.
En faite j'utilise une première table TABLE1 dont les champ utilisé sont CODE,LIB et DATE. J'aimerais ajouter dans mon tableau le champ GROUPE qui appartient à la TABLE2. Le résultat devrait donné sa :
LIB----------------DATE-------------CODE------------GROUPE
a---------------aaaa-mm-jj----------1-----------------ab-----
......
Le lien entre les deux tables est CODE et je pense que le souci c'est que dans TABLE1 le libellé du champ est CODE et idem dans TABLE2
Voici ma requête SQL :
Code:
SELECT DISTINCT DATE,LIB,CODE FROM TABLE1 LEFT JOIN TABLE2 ON
 
TABLE1.CODE=TABLE2.CODE WHERE CODE IS NOT NULL ORDER BY CODE,DATE DESC

Le problème c'est qu'on me renvoie cette erreur :
Column 'CODE' in field list is ambiguous

C'est le même souci quand je teste sur PHPmyAdmin

Je ne comprend pas pourquoi sa fait sa. J'espère que vous pourrez m'aider.


Merci d'avance
 
WRInaute accro
Essaie simplement:

SELECT t1.DATE,t1.LIB,t1.CODE,t2.GROUPE
FROM TABLE1 t1
LEFT JOIN TABLE2 t2 ON
(t1.CODE=t2.CODE)

Tu n'as pas à gérer les null dans un LEFT JOIN. Sinon le LEFT JOIN perd tout son sens. Et le problème anbiguous provient du fait que tu n'utilises pas d'alias ou le nom de la table quand tu fais appel à CODE.
 
Nouveau WRInaute
merci beaucoup pour ça sa a fonctionner le problème c'est que vu que je ne sélectionne pas dans ma requête le libellé de groupe sa ne m'affiche rien dans le champ groupe dans mon tableau. j'ai donc changé ma requête :
SELECT DISTINCT TABLE1.DATE,TABLE1.LIB,TABLE1.CODE,TABLE2.GROUPE FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.CODE=TABLE2.CODE WHERE TABLE1.CODE IS NOT NULL ORDER BY TABLE1.CODE,TABLE1.DATE DESC

et maintenant j'ai cette erreur là :

Not unique table/alias: 'GROUPE'

j'ai laissé le WHERE car je ne pense pas que ce soit de là que vienne le souci
 
WRInaute accro
Mais pourquoi tu fais des requêtes à rallonge et illisibles. En plus tu continues à mettre des IS NOT NULL alors que ça sert à rien avec ton LEFT JOIN. Si tu veux le libellé du groupe bah tu fais fais un select t2.lib, c'est tout.

SELECT t1.DATE,t1.LIB,t1.CODE,t2.LIB
FROM TABLE1 t1
LEFT JOIN TABLE2 t2 ON
(t1.CODE=t2.CODE)
 
Discussions similaires
Haut