[RESOLU][SQL] multi select, join et count

J’ai 2 tables

TABLE Users (table_roster) : contient des utilisateurs uniques, avec users, id, type, …, tout est unique.
Les colonnes sont : name, user_id, user_type etc.

TABLE Events (table_calendar) : des évènements associés aux utilisateurs. Un utilisateur n’a pas necessairement crée d’evenement.
Les colonnes sont : eventname, user_id etc

Je cherche a faire une requete pour recuperer la liste suivante :
user_id / nombre d’evenements (même si = 0) pour un user_type donné.

On a essayé avec de multiples SELECT, des JOIN LEFT, des COUNT, mais sans grand succès…

Cette requête marche, elle me donne tous les utilisateurs pour lesquels je veux des résultats.

Cette requête marche, elle me donne le nombre d’evenements pour chaque utilisateur.

org_id dans table_calendar est = à owner_id dans table_roster

L’idée est d’arriver à faire une requete unique partant de là, mais c’est là que ça coince…

La base est en MySQL 4.0.15 (impossible d’upgrader, contrainte hébergeur)

(note : si quelqu’un se pose la question en voyant le nom des tables, oui, c’est pour un site de guilde de MMO)

sous sql server je ferais ca

select table_roster.user_id, count(table_calendar.Event_name) from table_calendar,Table_roster
where ( Table_roster.User_id*= table_calendar.User_Id)
group by table_roster.user_id

mais ca te fais peut etre une jolie jambe ?

Ce sera pareil dans mysql. Par contre attention, c’est table_calendar.org_id, dans le where

SQL Server ou MySQL, cette requête reste du SQL de base B)

euh je dois dire que je ne suis pas sûr de voir le problème ^^

SELECT user_id, COUNT(org.user_id)
FROM table_roster AS r
LEFT JOIN table_calendar AS c
ON r.user_id = c.user_id
WHERE r.user_type = 'que tu veux '
GROUP BY r.user_id

Bon ensuite, mes connaissances en MySql datant de l’avant guerre, je ne sais plus s’il supporte ce type de jointure.

Merci pour vos pistes, ça marche. Au final, ça donne ça :

SELECT DISTINCT r.proprio_id, r.proprio , COUNT(c.organisateur_id) AS t FROM eq2_roster AS r LEFT JOIN eq2_calendar AS c ON r.proprio_id = c.organisateur_id WHERE (r.type=0 OR r.type=4)

(vivi, c’est du sql basique, mais … B) )