Запрос для извлечения данных двух таблиц вместе - PullRequest
0 голосов
/ 08 июня 2018

У меня есть 2 таблицы.Имя таблицы «student» имеет следующие столбцы:

rowindex   roll_no  name
1          111      Peter
2          112      John

Имя таблицы «exam_dates» имеет следующие столбцы:

rowindex    roll_no    subject      date
1           111        Maths     2018-06-20
2           111        English   2018-06-21
3           112        Maths     2018-06-19
4           112        History   2018-06-22

Условия запроса следующие: -

Condition 1. Each student's Last exam date in 1 table by using those two tables.

&

Condition 2. If Exam date is less than today's date, then it should not come into the list.

Я хочу получить результат как

 1. Roll_no 111 have Maths at 2018-06-20 
 2. Roll_no 112 have History at 2018-06-22

Для получения этого результата какой запрос мне нужно написать?Я попробовал запрос следующим образом: -

SELECT a.roll_no, a.name,b.subject, b.date 
FROM test_db.student a, test_db.exam_dates b 
Where a.roll_no = b.roll_no and (SELECT MAX(date) FROM exam_dates) 
group by a.roll_no 
order by a.roll_no, a.name,b.subject;

Но безуспешно.Нужна помощь.

1 Ответ

0 голосов
/ 08 июня 2018

Условие 2. Если дата экзамена меньше текущей, то она не должна попадать в список.

Это условие WHERE.

Условие 1. Дата последнего экзамена каждого студента в 1 таблице с использованием этих двух таблиц.

Это MAX(date) на студента.

Вы хотите показать предмет,Кроме того, вы сначала получите максимальные даты для каждого учащегося, а затем снова запросите таблицу exam_dates:

select s.roll_no, s.name, ed.subject, ed.date
from student s
join exam_dates ed on ed.roll_no = s.roll_no
where (ed.roll_no, ed.date) in
(
  select roll_no, max(date)
  from exam_dates
  where date >= current_date
  group by roll_no
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...