bonjour a tous,

bon mon titre est pas très explicite mais je vais essayer d'etre plus clair avec la structure de ma base. Voici - une partie de mon dump sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
CREATE TABLE `joueurs` (
  `id` int(10) unsigned zerofill NOT NULL auto_increment,
  `m_p_id` mediumint(8) unsigned zerofill NOT NULL default '00000000',
  `m_id` smallint(5) unsigned zerofill NOT NULL default '00000',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM COMMENT='table des joueurs';
 
CREATE TABLE `joueurs_evts` (
  `id` int(11) unsigned zerofill NOT NULL default '00000000000',
  `joueurs_id_source` int(10) unsigned zerofill NOT NULL default '0000000000',
  `joueurs_id_dest` int(10) unsigned zerofill NOT NULL default '0000000000',
  `date_d_envoi` date NOT NULL default '0000-00-00',
  `est_envoye` enum('Y','N') NOT NULL default 'N',
  KEY `est_envoye` (`est_envoye`),
  KEY `joueur_id_source` (`joueur_id_source`),
  KEY `joueur_id_dest` (`joueur_id_dest`)
) TYPE=MyISAM COMMENT='table des evenements';
 
CREATE TABLE `modele_personnage_interactions` (
  `m_p_id_source` mediumint(8) unsigned zerofill NOT NULL default '00000000',
  `m_p_id_dest` mediumint(8) unsigned zerofill NOT NULL default '00000000',
  `duree` tinyint(3) unsigned zerofill NOT NULL default '000',
  UNIQUE KEY `p_p_id_source_2` (`m_p_id_source`,`m_p_id_dest`)
) TYPE=MyISAM COMMENT='tables des etats diplomatiques initiaux';
 
CREATE TABLE `modele_personnage` (
  `id` mediumint(8) unsigned zerofill NOT NULL auto_increment,
  PRIMARY KEY  (`id`),
) TYPE=MyISAM COMMENT='table des modèles de personnages jouables';
 
 
 
CREATE TABLE `membres` (
  `id` smallint(5) unsigned zerofill NOT NULL default '00000',
  `login` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
) TYPE=MyISAM COMMENT='table des membres inscrits';
Voici les dependances:
# tables joueurs_evts
# joueurs_evts.joueurs_id_source -> joueurs.id
# joueurs_evts.joueurs_id_dest => joueurs.id

# table joueurs
# joueurs.m_id -> membres.id
# joueurs.m_p_id -> modele_personnage.id

# table modele_personnage_interactions
# m_p_id_source -> modele_personnage.id
# m_p_id_dest -> modele_personnage.id
la table joueurs_evts permet de suivre les evenements qui se sont deroulés entre plusieurs joueurs. j'aimerai recuperer tous les messages non envoyés (non_envoye = 'N') et dont la date du jour correspond a la date de postage (date_d_envoi) + la durée (modele_personnage_interactions.duree)

seulement du fait que les tables joueurs_evts et modele_personnage_interactions possèdent deux champs pointant sur la meme clé (respectivement modele_personnage.id et joueurs.id) il me semble difficile avec des jointure de recuperer ces champs en une seule requete. Donc si vous avez une idée pour realiser cette operation en le moins de requetes possibles , cela m'aiderait beaucoup , je seche un peu