Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取最大不同日期的SQL查询-类型_Sql_Mysql - Fatal编程技术网

获取最大不同日期的SQL查询-类型

获取最大不同日期的SQL查询-类型,sql,mysql,Sql,Mysql,我有两张表:articles和articletags articles: id, author, date_time, article_text articletags: id, tag (article.id == articletags.id in a many-to-many relationship) 我在寻找上次在每个标签下发布的内容。换言之,对于每个标签,查看所有与之相关的文章,找到最新的并返回 乙二醇 文章: 1, me, 12 Nov, Sometext 2, me, 13

我有两张表:articles和articletags

articles: id, author, date_time, article_text
articletags: id, tag

(article.id == articletags.id in a many-to-many relationship)
我在寻找上次在每个标签下发布的内容。换言之,对于每个标签,查看所有与之相关的文章,找到最新的并返回

乙二醇 文章:

1, me, 12 Nov, Sometext
2, me, 13 Nov, Sometext
3, me, 14 Nov, Sometext
物品标签

1, foo
1, bar
2, foo
3, bar
我想回去:

foo, 13 Nov
bar, 14 Nov
我可以到达一个内部连接,然后被难倒。我不认为一个独特的子句是我所追求的,我不太熟悉子查询,不知道这是否有帮助

SELECT date_time, tag 
FROM articles, articletags
WHERE articles.id = articletags.id 

这可能吗?

这实际上会返回最旧的记录,而不是最新的记录。这是它出现的默认行为,因此它需要像Gorden Bell的解决方案那样的max子句。其次,如果您使用的是MySQL,您需要交换Order By和Group By around,这样才能工作。我不知道为什么,但你知道。@Hyposaurus:SQL标准说GROUP BY在ORDER BY之前。@SoapBox:问题是它返回每个标记的所有行,而不仅仅是max date行。这实际上返回的是最旧的记录,而不是最近的记录。这是它出现的默认行为,因此它需要像Gorden Bell的解决方案那样的max子句。其次,如果您使用的是MySQL,您需要交换Order By和Group By around,这样才能工作。我不知道为什么,但你知道。@Hyposaurus:SQL标准说GROUP BY在ORDER BY之前。@SoapBox:问题是它返回每个标记的所有行,而不仅仅是max date行。
SELECT date_time, tag 
FROM articles, articletags
WHERE articles.id = articletags.id
ORDER BY date_time DESC
GROUP BY tag
select t.tag, max(a.date_time) as latest
from articles a
inner join articletags t
on t.id = a.id
group by t.tag