Bonjour à tous,

J'essai de faire la somme de deux champs (se trouvant sur deux tables) pour un même utilisateurs.
J'ai la structure suivante :

Une table "users" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
+--------------+------------------+------+-----+---------+----------------+
| Field        | Type             | Null | Key | Default | Extra          |
+--------------+------------------+------+-----+---------+----------------+
| id           | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| nom          | varchar(100)     | NO   |     | NULL    |                |
| prenom       | varchar(100)     | NO   |     | NULL    |                |
+--------------+------------------+------+-----+---------+----------------+
Une table "taches" , contenant des taches à effectuer. Une tache est associé à un utilisateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
+-------------+----------------------+------+-----+---------+----------------+
| Field       | Type                 | Null | Key | Default | Extra          |
+-------------+----------------------+------+-----+---------+----------------+
| id          | int(10) unsigned     | NO   | PRI | NULL    | auto_increment |
| idUser      | int(10) unsigned     | NO   | MUL | NULL    |                |
| titre       | varchar(255)         | NO   |     | NULL    |                |
| occupation  | int(11)              | NO   |     | 0       |                |
+-------------+----------------------+------+-----+---------+----------------+
Une table taches_users qui permet d'associer des utilisateurs "secondaire" à une tache.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| id         | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| idUser     | int(10) unsigned | NO   | MUL | NULL    |                |
| idTache    | int(10) unsigned | NO   | MUL | NULL    |                |
| occupation | int(11)          | NO   |     | 0       |                |
+------------+------------------+------+-----+---------+----------------+
J'arrive évidemment à récupérer le total d'occupation par utilisateur pour les taches :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT
    SUM(t.occupation),
    u.prenom,u.nom
FROM taches t
    INNER JOIN users u ON u.id = t.idUser
    GROUP BY u.id
Un utilisateur étant soit directement attaché à une tache soit utilisateur secondaire d'une tache (via la table taches_users) j'aimerais arriver à faire le total de son occupation (en gros faire un SUM général de "occupation" quelque soit la table).
Le but final étant d'obtenir la liste des utilisateurs avec leur occupations totale.
Est ce possible avec une seule requête ou dois je forcément passer par deux petite requêtes comme celle présentée précedemment ?

Note : j'ai pas la main sur la structure de la table qui ne me semble pas idéale.

Merci