Получение значений из отношения нескольких таблиц в SQL - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть структура таблицы с диаграммой ER, подобной этой.

Я хочу создать функцию PostgresQL, которая принимает в качестве аргументов две даты и возвращает всех учителей, занятых в командах за период .

enter image description here

Я сделал простой запрос, чтобы выбрать все классы в данный период времени, как этот

select * from classes where starts > '2020-01-01' AND ends < '2030-01-01'

Это возвращает классы, такие как:

0   0   "2020-02-25 20:31:30.463451"    "2020-03-26 20:31:30.463451"    0   "Attendance"
1   1   "2020-02-25 20:33:09.336577"    "2020-03-26 20:33:09.336577"    0   "Online"
2   4   "2020-02-25 20:47:04.939029"    "2020-03-26 20:47:04.939029"    0   "Attendance"
3   1   "2020-02-25 20:47:12.139878"    "2020-03-26 20:47:12.139878"    0   "Attendance"
4   2   "2020-02-25 20:47:18.468703"    "2020-03-26 20:47:18.468703"    0   "Attendance"
10  1   "2020-02-24 21:00:34.229316"    "2020-01-26 21:00:34.229316"    2   "Attendance"
11  1   "2020-02-24 21:30:37.319799"    "2020-01-26 21:30:37.319799"    2   "Attendance"
12  1   "2020-02-15 21:30:49.223645"    "2020-01-26 21:30:49.223645"    2   "Attendance"

Теперь я хочу попробовать обернуть эту логику c в функцию и просто вернуть учителей вместо этого.

CREATE OR REPLACE FUNCTION availible_teachers(start_date date, end_date date)
RETURNS TABLE (teacherid, firstname, lastname) AS
$func$
BEGIN
    RETURN QUERY
--query to be executed
...


end;
$func$

Я застрял в том, как я могу получить доступ к учителям на основе доступа из классов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...