J'ai lutté avec ce problème pendant environ un mois .. A été la recherche et la lecture de nombreux messages, mais ne peut toujours pas comprendre, comment faire ce travail ..MySQL ORDER BY "count (*) et 2 autres paramètres" d'une autre table
en gros: Je suis arrivé 2 tables de base de données et fun_posts
fun_post_upvotes
et je veux
SELECT *
FROM fun_posts
ORDER BY (HOTTEST POSTS(MOST UPVOTED THIS WEEK))
Ceci est mon dernier code, qui ne fonctionnera pas
SELECT *
FROM fun_posts
ORDER BY (SELECT count(*), image_id, date
FROM fun_post_upvotes
GROUP BY image_id
ORDER BY DATE(date) > (NOW() - INTERVAL 7 DAY) DESC,
count(*) DESC,
date DESC)
Si je divise cette ligne en 2 fonctions SELECT
différentes, elles fonctionnent. Je peux sélectionner des messages simples et je peux sélectionner le nombre de votes ascendants commandés comme je le veux.
Mais si je les fais en une ligne comme ça, je me l'erreur suivante:
#1241 - Operand should contain 1 column(s)
EDIT NR 1:
fun_posts
Table fun_post_upvotes
Table
Problème avec la réponse que j'ai vérifié:
Ici, regardez comment les publications sont classées dans ma fonction select
. (Il choisit comme je veux) 10> 134-> 132-> 2-> 13
Et ici avec le code donné (Il sélectionne l'image, mais pas dans cet ordre) 10> 122- > 39-> 8-> 110
Vous devez utiliser/ajouter un 'WHERE' clause et JOIN serait bénéfique. –
@ Fred-ii- Pourquoi? Pouvez-vous s'il vous plaît expliquer? Ensuite, il ne sera pas afficher "posts" qui n'ont pas de votes positifs cette semaine. Et lorsqu'ils sont divisés en 2 SELECTS séparés, ils fonctionnent. – Crelix