Bonjour,
Je développe actuellement un site web traitant de jeux video avec cakephp. Sur ce site j'ai deux tables, une s'appelant "articles" qui contient des articles de tout type(news,test,..) et une autre table qui s'appelle "tests". Entre les deux la relation est la suivante: un article peut être aucun ou un seul test, et un test est un article au min et au max. Cette dernière table contient la clef étrangère vers un article, une clef primaire auto-incrementé et quelques champs.
Je considère que quand un article n'a pas son id présent dans la table test ce n'est pas un test. Et justement je voudrais pouvoir arriver à faire cette différence avec une requête SQL. Voulant utiliser les outils mis à ma disposition par cakephp afin de faire ma jointure je dispose de LEFT, RIGHT, INNER,....JOIN.
Je voudrais dans ma requête pouvoir récupérer les articles qui n'ont pas leur id dans la table test. Et j'ai beau avoir tenté plusieurs essais je n'y arrive pas. A chaque fois soit je récupère que les articles qui sont des tests, soit il me multiplie le nombre d'article par le nombre de test (c'est un calcul matriciel si je ne me trompe pas?).
Voila un exemple de requete que j'ai essayé:
La table game contient des infos sur des jeux, et elle est relié à articles (un articles traite d'un jeu ou aucun).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT Article.id,Article.titre,Article.date_parution FROM `articles` AS `Article` LEFT JOIN `games` AS `Game` ON (`Article`.`game_id` = `Game`.`id`) INNER JOIN `tests` AS `Test` ON (`Test`.`article_id` != `Article`.`id`) WHERE `Game`.`id` = 9
Je vous remercie d'avance pour votre aide![]()
Partager