Bonjour

Je voudrais joindre trois tables :
Attribuer (id_perso , id_aff , nb_heures)
Personnel (id_perso ,nom_perso)
Affaire (id_aff , d_date)

Voici le code (aidé par CinePhil) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
$requete = "SELECT p.id_perso, p.nom_perso, p.prenom,
  a.id_aff,
  SUM(a.nb_heures) AS nb_heures_total
FROM personnel p
 
INNER JOIN attribuer a ON a.id_perso = p.id_perso
 
where `id_aff` LIKE CONVERT( _utf8 '%$id_affaire%'USING latin1 )
AND `nom_perso` LIKE CONVERT( _utf8 '%$nom_agent%'USING latin1 )
GROUP BY p.id_perso, p.nom_perso, p.prenom, a.id_aff
ORDER BY a.id_aff , p.nom_perso, p.prenom  desc
             ";
Je voudrais rajouter une jointure avec la table affaire (dans laquelle il y a un champ d_date) qui croise la table attribuer via le champ id_aff, afin de filtrer les résultats par date (via un AND d_date>='$deb'and d_date<='$fi' )
Si je rajoute la ligne INNER JOIN affaire af ON af.id_aff = a.id_aff

il dit : Column 'id_aff' in where clause is ambiguous

Et si pour lever l'ambiguité je change la ligne par

where `a.id_aff` LIKE CONVERT( _utf8 '%$id_affaire%'USING latin1 )

ça me répond :
Unknown column 'a.id_aff' in 'where clause'

Quelle est mon erreur ?

Cordialement,
Philippe Rivière