demande d'aide pour une requete - recherche sur forum
2 réponses
Marc Collin
salut
j'ai donc une table membre, une table section, une table message, une
table reponse
chaque réponse correspond à un message...
je veux chercher les messages et reponse correspondant à XZombi
si un message a XZombi et plusieurs réponse qui lui sont lié en ont
aussi... je veux affiché le message une fois...
il est possible que XZombi soit seulement dans une réponse.. je sort le
message lui étant associé
j'ai des doutes qu'on puisse faire ça en une requete...
j'utilise mysql
j'ai un message ayant XZombi et qui possède 2 réponse qui a XZombi
dedans... le numéro de ce message est 1
j'ai un autre message ayant XZombi son numéro est 33
donc il devrait affiche que deux message...
dans le message 1, il y a 7 réponse
j'ai concocté cette requete
SELECT msg.mes_nomessage, mes_titre, mem_nomusager
FROM message msg
INNER JOIN membre m ON m.mem_nomembre = msg.mem_nomembre
INNER JOIN section s ON s.sec_nosection = msg.sec_nosection
INNER JOIN reponse rep ON rep.mes_nomessage = msg.mes_nomessage
WHERE s.sec_nosection = 1 AND
MATCH (mes_message) AGAINST ("XZombi") or
MATCH (rep_reponse) AGAINST ("XZombi")
cette requete ne donne bien sur pas le résultat escompté
j'obtient 7 fois le message 1
est-t'il possible de faire ça en 1 requête... ou je vais être obligé de
séparer ça...
des suggestions?
merci
--
La boîte à prog http://www.laboiteaprog.com
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Igor Racic
Est-ce que tu peux donner un exemple de données et result que tu veux obtenir ? C'est plus facile à suivre...
Igor
Marc Collin wrote:
salut
j'ai donc une table membre, une table section, une table message, une table reponse
chaque réponse correspond à un message...
je veux chercher les messages et reponse correspondant à XZombi
si un message a XZombi et plusieurs réponse qui lui sont lié en ont aussi... je veux affiché le message une fois...
il est possible que XZombi soit seulement dans une réponse.. je sort le message lui étant associé
j'ai des doutes qu'on puisse faire ça en une requete...
j'utilise mysql
j'ai un message ayant XZombi et qui possède 2 réponse qui a XZombi dedans... le numéro de ce message est 1
j'ai un autre message ayant XZombi son numéro est 33
donc il devrait affiche que deux message...
dans le message 1, il y a 7 réponse
j'ai concocté cette requete
SELECT msg.mes_nomessage, mes_titre, mem_nomusager FROM message msg INNER JOIN membre m ON m.mem_nomembre = msg.mem_nomembre INNER JOIN section s ON s.sec_nosection = msg.sec_nosection INNER JOIN reponse rep ON rep.mes_nomessage = msg.mes_nomessage WHERE s.sec_nosection = 1 AND MATCH (mes_message) AGAINST ("XZombi") or MATCH (rep_reponse) AGAINST ("XZombi")
cette requete ne donne bien sur pas le résultat escompté
j'obtient 7 fois le message 1
est-t'il possible de faire ça en 1 requête... ou je vais être obligé de séparer ça...
des suggestions?
merci
Est-ce que tu peux donner un exemple de données et result que tu veux
obtenir ?
C'est plus facile à suivre...
Igor
Marc Collin wrote:
salut
j'ai donc une table membre, une table section, une table message, une
table reponse
chaque réponse correspond à un message...
je veux chercher les messages et reponse correspondant à XZombi
si un message a XZombi et plusieurs réponse qui lui sont lié en ont
aussi... je veux affiché le message une fois...
il est possible que XZombi soit seulement dans une réponse.. je sort le
message lui étant associé
j'ai des doutes qu'on puisse faire ça en une requete...
j'utilise mysql
j'ai un message ayant XZombi et qui possède 2 réponse qui a XZombi
dedans... le numéro de ce message est 1
j'ai un autre message ayant XZombi son numéro est 33
donc il devrait affiche que deux message...
dans le message 1, il y a 7 réponse
j'ai concocté cette requete
SELECT msg.mes_nomessage, mes_titre, mem_nomusager
FROM message msg
INNER JOIN membre m ON m.mem_nomembre = msg.mem_nomembre
INNER JOIN section s ON s.sec_nosection = msg.sec_nosection
INNER JOIN reponse rep ON rep.mes_nomessage = msg.mes_nomessage
WHERE s.sec_nosection = 1 AND
MATCH (mes_message) AGAINST ("XZombi") or
MATCH (rep_reponse) AGAINST ("XZombi")
cette requete ne donne bien sur pas le résultat escompté
j'obtient 7 fois le message 1
est-t'il possible de faire ça en 1 requête... ou je vais être obligé de
séparer ça...
Est-ce que tu peux donner un exemple de données et result que tu veux obtenir ? C'est plus facile à suivre...
Igor
Marc Collin wrote:
salut
j'ai donc une table membre, une table section, une table message, une table reponse
chaque réponse correspond à un message...
je veux chercher les messages et reponse correspondant à XZombi
si un message a XZombi et plusieurs réponse qui lui sont lié en ont aussi... je veux affiché le message une fois...
il est possible que XZombi soit seulement dans une réponse.. je sort le message lui étant associé
j'ai des doutes qu'on puisse faire ça en une requete...
j'utilise mysql
j'ai un message ayant XZombi et qui possède 2 réponse qui a XZombi dedans... le numéro de ce message est 1
j'ai un autre message ayant XZombi son numéro est 33
donc il devrait affiche que deux message...
dans le message 1, il y a 7 réponse
j'ai concocté cette requete
SELECT msg.mes_nomessage, mes_titre, mem_nomusager FROM message msg INNER JOIN membre m ON m.mem_nomembre = msg.mem_nomembre INNER JOIN section s ON s.sec_nosection = msg.sec_nosection INNER JOIN reponse rep ON rep.mes_nomessage = msg.mes_nomessage WHERE s.sec_nosection = 1 AND MATCH (mes_message) AGAINST ("XZombi") or MATCH (rep_reponse) AGAINST ("XZombi")
cette requete ne donne bien sur pas le résultat escompté
j'obtient 7 fois le message 1
est-t'il possible de faire ça en 1 requête... ou je vais être obligé de séparer ça...
des suggestions?
merci
Spontex
Marc Collin wrote:
j'ai concocté cette requete
SELECT msg.mes_nomessage, mes_titre, mem_nomusager FROM message msg INNER JOIN membre m ON m.mem_nomembre = msg.mem_nomembre INNER JOIN section s ON s.sec_nosection = msg.sec_nosection INNER JOIN reponse rep ON rep.mes_nomessage = msg.mes_nomessage WHERE s.sec_nosection = 1 AND MATCH (mes_message) AGAINST ("XZombi") or MATCH (rep_reponse) AGAINST ("XZombi")
cette requete ne donne bien sur pas le résultat escompté
j'obtient 7 fois le message 1
Salut, Je dirais que le problème vient du fait que tu distingues "message" et "réponse", ce qui fait que tu compliques inutilement ! Une réponse est apparemment un message particulier, donc il n'y a pas de raison de les distinguer, non ? Sinon, pour ta requête, il faut à mon avis que tu utilises "IN BOOLEAN MODE" pour que MATCH vale vrai ou faux. Regarde la doc. de MySQL pour cela. Pour finir, une clause GROUP BY msg.mes_nomessage te permettra de n'avoir qu'une seule fois les réponses correspondant à un sujet de discussion donné.
A+
-- Spontex http://dvdtoile.com
Marc Collin wrote:
j'ai concocté cette requete
SELECT msg.mes_nomessage, mes_titre, mem_nomusager
FROM message msg
INNER JOIN membre m ON m.mem_nomembre = msg.mem_nomembre
INNER JOIN section s ON s.sec_nosection = msg.sec_nosection
INNER JOIN reponse rep ON rep.mes_nomessage = msg.mes_nomessage
WHERE s.sec_nosection = 1 AND
MATCH (mes_message) AGAINST ("XZombi") or
MATCH (rep_reponse) AGAINST ("XZombi")
cette requete ne donne bien sur pas le résultat escompté
j'obtient 7 fois le message 1
Salut,
Je dirais que le problème vient du fait que tu distingues "message" et
"réponse", ce qui fait que tu compliques inutilement !
Une réponse est apparemment un message particulier, donc il n'y a pas de
raison de les distinguer, non ?
Sinon, pour ta requête, il faut à mon avis que tu utilises "IN BOOLEAN
MODE" pour que MATCH vale vrai ou faux. Regarde la doc. de MySQL pour cela.
Pour finir, une clause GROUP BY msg.mes_nomessage te permettra de
n'avoir qu'une seule fois les réponses correspondant à un sujet de
discussion donné.
SELECT msg.mes_nomessage, mes_titre, mem_nomusager FROM message msg INNER JOIN membre m ON m.mem_nomembre = msg.mem_nomembre INNER JOIN section s ON s.sec_nosection = msg.sec_nosection INNER JOIN reponse rep ON rep.mes_nomessage = msg.mes_nomessage WHERE s.sec_nosection = 1 AND MATCH (mes_message) AGAINST ("XZombi") or MATCH (rep_reponse) AGAINST ("XZombi")
cette requete ne donne bien sur pas le résultat escompté
j'obtient 7 fois le message 1
Salut, Je dirais que le problème vient du fait que tu distingues "message" et "réponse", ce qui fait que tu compliques inutilement ! Une réponse est apparemment un message particulier, donc il n'y a pas de raison de les distinguer, non ? Sinon, pour ta requête, il faut à mon avis que tu utilises "IN BOOLEAN MODE" pour que MATCH vale vrai ou faux. Regarde la doc. de MySQL pour cela. Pour finir, une clause GROUP BY msg.mes_nomessage te permettra de n'avoir qu'une seule fois les réponses correspondant à un sujet de discussion donné.