Bonjour,
Tout d'abord désolé de ma question de noob, mais je n'arrive pas à réaliser une requête.
Je vous explique le topo : j'ai un site ou l'on peut s'inscrire et enregistrer des personnages. On peut avoir plusieurs personnages par compte.
Il est possible de participer à des expéditions, pour cela on inscrit un ou plusieurs de ses personnages.
J'aimerais afficher en page d'accueil une alerte lorsqu'une expédition à laquelle un ou plusieurs personnages nous appartenant se rapproche (moins de 3 jours). Je n'arrive pas à faire ma requête, je bloque .
Je vous décris mes tables :
J'ai une table "dungeon" contenant des expéditions, avec un "id" en clé unique.
J'ai une table "dungeonmembers" contenant juste 3 champs, un champ "id" en unique, un champ "dungeonid" et un champ "characterid", respectivement pour l'id de l'expédition et l'id du personnage.
Pour finir, j'ai une table "characters" qui contient un id unique, et un champ memberid pour la liaison au compte concerné.
Je voudrais donc récupérer l'id de l'expédition (dans la table dungeon) ou au moins un de mers personnages est inscrit. J'ai essayé avec des IN mais apparemment 2 IN ne fonctionnent pas dans la même requête
Voici la requête que j'ai faite et qui pose problème dans PHPMyAdmin :
Code :
- SELECT id,name FROM dungeon WHERE DATEDIFF(ddate,NOW()) < 3 ORDER BY ddate DESC IN (SELECT dungeonid FROM dungeonmembers WHERE characterid IN (SELECT id FROM characters WHERE memberid = 1))
|
Le memberid = 1 est là pour l'exemple, il est remplacé par l'id stocké en SESSION dans la requête bien sûr.
Bien évidemment, ça bug à fond les pédales (je HAIS le SQL, c'est viscéral ).
Merci d'avance pour toute aide que vous pourrez m'apporter
Message édité par garfunk71 le 16-12-2008 à 22:54:50