Problème SQL

Petit nouveau ! | 1 Messages

28 nov. 2005, 15:25

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 !!

ViPHP
ViPHP | 1024 Messages

28 nov. 2005, 18:43

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 nov. 2005, 11:06

Dans ta sous-requete, tu fait un groupement selon le topic_id qui ne correspond pas à ton paramètre de MAX
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer