J'ai mes tables posts
et user_unread_posts
. Dans posts
, tous les messages d'un forum sont enregistrés, et dans user_unread_posts
tous les messages sont enregistrés qui sont lus par un utilisateur.MySQL - rangée aléatoire très compliquée
user_undread_posts
ressemble à ceci:
id uid pid
Maintenant, je veux permettre aux utilisateurs d'ouvrir un poste au hasard qu'ils ont pas lu. J'ai essayé quelque chose comme
SELECT * FROM posts
LEFT JOIN user_unread_posts uup
ON uup.pid=posts.id
WHERE uup.uid<>1
ORDER BY RAND()
LIMIT 1
(Alors que 1 est un espace réservé UID)
Mais cela ne fonctionne pas, comme cela devrait fonctionner, il retourne les messages aussi, qui sont lus ... Comment Je répare ça?
de messages INNER JOIN user_unread_posts? –
Est-ce que je fais un mauvais test: vous stockez les messages lus dans une table appelée "messages non lus"? – Quassnoi
Non, oui: C'était un exemple, les vrais noms de tables ne sont pas comme ça. Stupide moi ... – ninov