-1
我有2个表格“文本”和“作者”。我想获得最新的文本(由pubDate排序)每个作者。当我尝试使用“Group By”时,它返回一个错误。使用“分组依据”与“加入”在Mysql
这里是我的表:
作者:
+----+-------+--+
| id | name | |
+----+-------+--+
| 1 | cat | |
| 2 | bird | |
| 3 | dog | |
| 4 | horse | |
+----+-------+--+
文本:
+----+----------+------------------+------------+
| 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 |
+----+----------+------------------+------------+
这里是我工作的SQL查询没有 “分组依据”:
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
这里不起作用查询与“分组依据”:
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
我怎样才能从每个作者的最新文本?
您是否阅读过['SELECT'语句](https://dev.mysql.com/doc/refman/5.7/en/select.html)的文档?它解释了“GROUP BY”子句的放置位置(但它并没有教你“GROUP BY”对于你当前的目标完全没有用处)。 – axiac
为什么要在没有聚合函数时使用Group By子句。如果有任何错误,请使用第一个查询并向我们显示预期的和实际的结果。还张贴一些示例数据。 –
'GROUP BY' **不会从表中返回行。它会生成它返回的记录。因此它不能用于*从每个作者*获取最新的文本。搜索标签为[tag:greatest-n-per-group]的类似问题 – axiac