Requete sql complexe

Signaler
Messages postés
3
Date d'inscription
vendredi 19 décembre 2003
Statut
Membre
Dernière intervention
14 septembre 2005
-
Messages postés
3
Date d'inscription
vendredi 19 décembre 2003
Statut
Membre
Dernière intervention
14 septembre 2005
-
Bonjour

J'ai une premiere table

CREATE TABLE `message` (
`id` smallint(6) NOT NULL auto_increment,
`nom` text NOT NULL,
`email` text NOT NULL,
`date` text NOT NULL,
`message` text NOT NULL,
`commentaire` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM ;

puis une 2ème

CREATE TABLE `commentaires` (
`id` smallint(6) NOT NULL auto_increment,
`idMes` text NOT NULL,
`couleur` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM ;

le champ commentaire.message prend 0 ou 1
(ou yen des commentaires ou pas)
s'il y a des commentaires dans la tables commentaires,
j'alimente idMes par id de la table messages
(un message peut avoir plusieurs commentaires)

la requête que je cherche a écrire doit me renvoyer
le message (suivant l'id) s'il n'y pas de commentaire
le message + le ou les commentaires s'il y en a

j'ai essayé
SELECT * FROM messages, commentaires
WHERE id.messages=selection AND commentaires.message=1

mais évidemment ce n'est pas ça
ça tente qq un ?

merci

nobull

3 réponses

Messages postés
17
Date d'inscription
mercredi 4 juin 2003
Statut
Membre
Dernière intervention
16 décembre 2005

Peut-être une jointure externe résoudrait ton problème ?

select messages.* from messages,commentaires
where messages.id=commentaires.idMes (+)
and messages.id=..

Antilope
Messages postés
3
Date d'inscription
vendredi 19 décembre 2003
Statut
Membre
Dernière intervention
14 septembre 2005

je ne connais pas les jointures externes
je vais me renseigner
merci bcp

nobull
Messages postés
3
Date d'inscription
vendredi 19 décembre 2003
Statut
Membre
Dernière intervention
14 septembre 2005

pour ceux que ça pourrait intéresser (pour mysql)

SELECT *
FROM message LEFT JOIN commentaires ON message.id=commentaires.idMes
WHERE message.id = colname

et ça marche !
merci encore

nobull