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) :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' )
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 ";
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
Partager