J'ai 2 tables "Textes" et "Auteurs". Je veux obtenir le dernier texte (ordre par pubDate) chaque auteur. Lorsque j'essaie d'utiliser un "Grouper par", il renvoie une erreur.Utiliser "Grouper par" avec "Rejoindre" sur Mysql
Voici mes tableaux:
Auteurs:
+----+-------+--+
| id | name | |
+----+-------+--+
| 1 | cat | |
| 2 | bird | |
| 3 | dog | |
| 4 | horse | |
+----+-------+--+
Textes:
+----+----------+------------------+------------+
| id | authorID | title | pubDate |
+----+----------+------------------+------------+
| 1 | 1 | Life About Cat | 2017-10-13 |
| 2 | 1 | How to be a cat? | 2017-10-12 |
| 3 | 2 | Is flying? | 2017-10-13 |
| 4 | 2 | We love cats. | 2017-10-11 |
+----+----------+------------------+------------+
Voici ma requête SQL travail sans "Grouper par":
SELECT texts.id AS textID, texts.title, texts.authorID
FROM texts JOIN authors ON authors.id = texts.authorID
WHERE authors.pin != '1' AND authors.status='1'
ORDER BY texts.pubDate DESC LIMIT 8
Et ici inopérants requête avec « Grouper par »:
SELECT texts.id AS textID, texts.title, texts.authorID
FROM texts GROUP BY texts.authorID JOIN authors ON authors.id = texts.authorID
WHERE authors.pin != '1' AND authors.status='1'
ORDER BY texts.pubDate DESC LIMIT 8
Comment puis-je obtenir le dernier texte de chaque auteur?
Avez-vous lu la documentation de l'instruction ['SELECT'] (https://dev.mysql.com/doc/refman/5.7/fr/select.html)? Il explique où mettre la clause 'GROUP BY' (mais cela ne vous apprend pas que' GROUP BY' est complètement inutile pour votre objectif actuel). – axiac
Pourquoi vous voulez utiliser la clause Group By lorsqu'il n'y a pas de fonction d'agrégation. Utilisez la première requête et montrez le résultat attendu et réel s'il y a une erreur. Publiez également des exemples de données. –
'GROUP BY' ** ne renvoie pas ** les lignes des tables. Il génère les enregistrements qu'il retourne. En conséquence, il ne peut pas être utilisé pour * obtenir le dernier texte de chaque auteur *. Rechercher des questions similaires tagged [tag: most-n-per-group] – axiac