У меня проблема: sql. Мне нужно получить для каждого пользователя, самого молодого пользователя, которого он/она следует. У меня есть эти таблицы:Макс (число) и подписчики
Информация о пользователе Таблица (user_inf):
+----------+------------------+---------------+
| name | address | date_of_birth |
+----------+------------------+---------------+
| Andreas | Martiou 25 | 1990-12-02 |
| Anna | Aiakidon 20 | 1989-07-15 |
| Aris | Papandreou 10 | 1987-03-12 |
| Dimitris | Dodonis 3 | 1992-09-07 |
| Katerina | 28 Oktobriou 4 | 1993-01-09 |
| Kostas | Kasioumi 3 | 1992-12-12 |
| Maria | Kalari 8 | 1993-08-31 |
| Panos | Aneksartisias 13 | 1991-05-27 |
| Petros | Panepistimiou 9 | 1992-04-15 |
| Yannis | Ithakis 20 | 1993-07-03 |
+----------+------------------+---------------+
Пользователь, который следует другому пользователю (следует):
+------------+------------+
| user1_name | user2_name |
+------------+------------+
| Aris | Andreas |
| Kostas | Andreas |
| Panos | Andreas |
| Petros | Andreas |
| Yannis | Andreas |
| Aris | Anna |
| Dimitris | Anna |
| Maria | Anna |
| Anna | Aris |
| Maria | Aris |
| Panos | Aris |
| Yannis | Aris |
| Andreas | Katerina |
| Kostas | Katerina |
| Aris | Kostas |
| Maria | Kostas |
| Anna | Maria |
| Dimitris | Maria |
| Anna | Panos |
| Aris | Panos |
| Kostas | Panos |
| Maria | Panos |
| Aris | Yannis |
| Maria | Yannis |
+------------+------------+
И мой код это один:
select Fol.user2_name
from user_inf as Usr, (select user2_name, max(date_of_birth) as MaxDate
from user_inf as U
inner join follows as F
on (F.user2_name = U.name)
inner join
follows as Fol
on(Fol.user2_name = t1.user2_name))t1
where t1.MaxDate = Usr.date_of_birth
group by Fol.user2_name;
Проблема в том, что каждый раз я получаю только одно имя всех пользователей или в худшем случае - пустой набор. Спасибо за ваше время.
Спасибо, друг. Это было очень полезно. – Noisie