Requête subtile... (?)

MantisBT forum for users who prefer to ask and answer questions in French.

Moderators: Developer, Contributor

Post Reply
Christophe.H
Posts: 25
Joined: 19 Jan 2011, 13:33

Requête subtile... (?)

Post by Christophe.H »

enfin subtile pour moi. Ce Topic trouverait son sens également sur un Forum Mysql mais j'ai pensé qu'il pouvait entrer facilement dans une caisse à outils d'admin.
L'objectif :
Lister tous les gestionnaires (access_level = 70) de tous le projets de chaque User

Code: Select all

#
# les gestionnaires des projets par user (ID). 
#
# a1 project_user_list coté user
# a2 project_user_list coté projet
#
SELECT 
a1.user_id,
a1.project_id,
mantis_project_table.name,
a2.user_id,
mantis_user_table.username,
mantis_user_table.email
FROM
`mantis_project_user_list_table` AS a1,
`mantis_project_user_list_table` AS a2
INNER JOIN 
`mantis_user_table` ON mantis_user_table.id = a2.user_id
INNER JOIN
`mantis_project_table` ON mantis_project_table.id = a2.project_id
WHERE 
a1.user_id IN ( SELECT id FROM `mantis_user_table`) 
AND
(a1.project_id = a2.project_id AND
a2.access_level = '70')
ORDER BY a1.user_id, a1.project_id ASC ;
Voila le code ci-dessus fonctionne sauf qu'il ne me ramène pas (et pour cause) le nom du user, il faudrait que je relise la table mantis_user_table... et je sais pas faire...

Donc j'ai soit une erreur de logique (je n'ai trouvé que cette rustine (code ci-dessous)) pour balayer le fichier mantis_user_table une 2° fois...

Code: Select all

WHERE 
a1.user_id IN ( SELECT id FROM `mantis_user_table`) 
soit une méconnaissance de la syntaxe Mysql soit...


merci de votre attention...[/color]
Mantis: 1.1.8
Lapinkiller
Posts: 408
Joined: 28 Jan 2011, 18:47
Location: France
Contact:

Re: Requête subtile... (?)

Post by Lapinkiller »

Bonjour,

Est ce dont tu as besoin ?

Code: Select all

SELECT
  u.username as user,
  p.name as project_name,
  uM.username as manager

FROM mantis_project_user_list_table as pul
JOIN mantis_user_table as u
  ON pul.user_id=u.id
JOIN mantis_project_table as p
  ON p.id=pul.project_id
JOIN mantis_project_user_list_table as pulM
  ON pulM.project_id=p.id AND pulM.access_level=70
JOIN mantis_user_table as uM
  ON uM.id=pulM.user_id
WHERE pul.access_level<70
Lapinkiller,
French PHP developer
New look for your mantis : http://www.mantisbt.org/forums/viewtopi ... =4&t=20055
Christophe.H
Posts: 25
Joined: 19 Jan 2011, 13:33

Re: Requête subtile... (?)

Post by Christophe.H »

C'est clairement ça !!!
Merci beaucoup. :D
Mantis: 1.1.8
Lapinkiller
Posts: 408
Joined: 28 Jan 2011, 18:47
Location: France
Contact:

Re: Requête subtile... (?)

Post by Lapinkiller »

content que ca fonctionne (ca en fait des jointures :mrgreen: )
Lapinkiller,
French PHP developer
New look for your mantis : http://www.mantisbt.org/forums/viewtopi ... =4&t=20055
Post Reply