8791 sujets

Développement web côté serveur, CMS

Bonjour j'ai une requete à 3 tables à réaliser à partir des 3 tables suivantes:

table article (id_article,titre,id_session)
table session (id_session, type)
table horaire (id_horaire,id_article)

Je recherche tous les articles qui n'ont pas encore d'horaire et qui soient du type donné par le type session

voila ce que j'arrive a faire:
SELECT a.id_article,a.titre FROM `article` a LEFT JOIN `horaire` h ON a.id_article = h.id_article WHERE h.id_article IS NULL
Cela me donne tous les articles qui ne sont pas enregistrés dans la table horaire

Mais je n'arrive pas à implémenter: qui soit du type donné par session; quelque chose du genre suivant:

SELECT a.id_article,a.titre, s.type FROM `article` a, `session` s LEFT JOIN `horaire` h ON a.id_article = h.id_article WHERE h.id_article IS NULL AND s.type = 'S'

Mais qui fonctionne parceque la bof
Merci à ceux qui savent.... et aux autres Smiley cligne
Salut,

Ta requête actuelle est comme ça :
FROM
    `article` a,

    [#gray]# la ligne ci-dessous n'est pas une jointure. Tu dis simplement :
    # "Attention, je vais récupérer des champs de cette table", mais tu ne
    # dis pas quelle est sa [b]relation[/b] avec article ("ON" dans une jointure)
    # donc ça sert à rien.[/#]
    `session` s

    [#gray]# la ligne ci-dessous est une bonne jointure. Tu dis :
    # je joins une table (LEFT JOIN) et sa relation avec
    # la table précédente est que a.id_article = h.id_article.
    # Tout va bien, donc.[/#]
    LEFT JOIN `horaire` h ON a.id_article = h.id_article
Ce qu'il te faut, c'est probablement :
FROM
    `article` a
    LEFT JOIN `session` s ON a.id_session = s.id_session
    LEFT JOIN `horaire` h ON a.id_article = h.id_article

Modifié par marcv (26 Jun 2009 - 10:38)
OK
Merci marcv
ça fonctionne.
Je ne savais pas que l'on pouvais mettre plusieurs fois LEFT JOIN dans une requette