J'ai 2 tables que je dois obtenir les 10 derniers identifiants de projet actifs basés sur la date. La requête est:Groupe MySQL par après l'union # 1064 erreur
(
SELECT project_posts.projectid as projectId, `project_posts`.`date` as rowDate
FROM `project_posts` ORDER BY `project_posts`.id DESC
)
UNION ALL
(SELECT `project_comments`.projectid as projectId, project_comments.`date` as rowDate FROM `project_comments` ORDER BY `project_comments`.id DESC) GROUP BY projectId ORDER BY rowDate DESC LIMIT 10
Et je veux trier par rowDate DESC (dernier projet d'abord). Le problème est que quand j'ajouter un groupe par MySQL dit:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY projectId ORDER BY rowDate DESC LIMIT 6' at line 9
j'ai regardé sur Internet pour des problèmes avec l'union, l'union et tout groupe par, mais je ne trouve pas de solution. Merci d'avance.
Merci beaucoup pour la réponse rapide. Maintenant, la requête s'exécute, mais le tri n'est pas correct, il ne prend pas les identifiants du projet LAST (ils sont différents quand j'exécute des sélections séparées pour les deux talbes ordonnées par la date DESC). J'ai essayé de changer la clause ORDER BY dans chaque select (dans l'UNION) avec ORDER BY 'project_comments'.'date' DESC et' project_posts'.'date' DESC, mais c'est toujours là. Toute suggestion? Merci d'avance. – some12die4
Je viens de lire à nouveau votre message original. Quel est exactement le but final et quelles sont les structures de la table? Je ne pense pas que cette requête avec UNION soit la meilleure façon de le faire. – nnichols
Désolé pour le malentendu. Je veux obtenir les 10 derniers projets actifs en fonction de l'activité en eux (messages et commentaires). Je n'ai pas trouvé de manière différente de l'union. – some12die4