Page 1 sur 1

Problème SQL

Posté : 28 nov. 2005, 15:25
par karaemrah
Bonjour :)

Me présente:

Emrah, 24 ans, passionné d'info !


J'ai un pti probleme au niveau d'une requete sql !

J'ai installé un forum (punbb) et je souhaite afficher les 5 derniers messages postés sur ma page d'accueil.
Je voudrais afficher uniquement les 5 derniers messages de tout le forum, en ignorant les messages issu d'un même topic... et en ignorant les messages d'un forum privé.

voici les tables concernés:

forums_posts
id, poster, poster_id, poster_ip, poster_email, message, hide_smilies, posted, edited, edited_by, topic_id.

forums_topics
id, poster, subject, posted, last_post, last_post_id, last_poster, num_views, num_replies, closed, sticky, moved_to, forum_id.

Ma requete resemble à ça:

SELECT forums_topics.forum_id, forums_topics.id, forums_topics.subject, forums_posts.id, forums_posts.poster, forums_posts.topic_id
FROM forums_posts,forums_topics
WHERE forums_topics.id = (SELECT topic_id,
MAX(id) as id
FROM forums_posts
group by topic_id)
AND forums_topics.forum_id != 5
GROUP BY forums_posts.id
DESC LIMIT 0, 5

Mais voila, j'ai cette erreur:
#1241 - Operand should contain 1 column(s)
Je suis bloqué ici, j'ai recherché la signification de cette erreur, mais je n'ai rien compris :( quelqu'un peu m'aider?

Merki !!

Posté : 28 nov. 2005, 18:43
par pascaltje
il ne devrait y avoir qu'une seule colonne dans ton SELECT dans le WHERE:

Code : Tout sélectionner

WHERE forums_topics.id = (SELECT topic_id, MAX(id) as id FROM forums_posts group by topic_id)

A+

Pascal

Posté : 29 nov. 2005, 11:06
par zeus
Dans ta sous-requete, tu fait un groupement selon le topic_id qui ne correspond pas à ton paramètre de MAX