SQL-запрос для получения максимально точной даты - своего рода

У меня две таблицы: статьи и теги

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

Я могу добраться до внутреннего соединения, и тогда я в тупике. Я не думаю, что предложение DISTINCT - это то, что мне нужно, и я недостаточно знаком с подзапросами, чтобы знать, поможет ли это.

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

Это вообще возможно?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
1 189
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

SELECT date_time, tag 
FROM articles, articletags
WHERE articles.id = articletags.id
ORDER BY date_time DESC
GROUP BY tag

На самом деле это возвращает самую старую запись, а не самую последнюю. Похоже, это поведение по умолчанию, поэтому для него требуется предложение max, как в решении Гордена Белла. Во-вторых, если вы используете MySQL, вам нужно поменять местами Order By и Group by, чтобы это работало. Я не знаю почему, но ты знаешь.

Doug Miller 17.11.2008 05:58

@Hyposaurus: в стандарте SQL говорится, что GROUP BY предшествует ORDER BY.

Jonathan Leffler 17.11.2008 08:26

@SoapBox: проблема в том, что он возвращает все строки, а не только строку максимальной даты для каждого тега.

Jonathan Leffler 17.11.2008 08:27
Ответ принят как подходящий
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

Другие вопросы по теме