powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Камрады! Left outer join с фильтрацией по полю DATE - как?????
5 сообщений из 5, страница 1 из 1
Камрады! Left outer join с фильтрацией по полю DATE - как?????
    #39997626
Stanislav_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код двух таблиц
CREATE TABLE athletes(
id_athlete INT NOT NULL AUTO_INCREMENT,
name VARCHAR(10),
PRIMARY KEY(id_athlete)
);
INSERT INTO athletes (name) VALUES ('Том');
INSERT INTO athletes (name) VALUES ('Марта');
INSERT INTO athletes (name) VALUES ('Катя');
INSERT INTO athletes (name) VALUES ('Ева');
INSERT INTO athletes (name) VALUES ('Людмила');
INSERT INTO athletes (name) VALUES ('Андрей');
INSERT INTO athletes (name) VALUES ('Виктор');
INSERT INTO athletes (name) VALUES ('Наталья');
INSERT INTO athletes (name) VALUES ('Егор');

CREATE TABLE winners_of_competitions(
id_woc INT NOT NULL AUTO_INCREMENT,
name_ivent VARCHAR(20),
date_of_the_event DATE,
first_place VARCHAR(20),
second_place VARCHAR(20),
third_place VARCHAR(20),
PRIMARY KEY(id_woc)
);
INSERT INTO winners_of_competitions (name_ivent, date_of_the_event, first_place, second_place, third_place) VALUES ('Чемпионат', '2018.08.02', 'Ева', 'Катя', 'Наталья');
INSERT INTO winners_of_competitions (name_ivent, date_of_the_event, first_place, second_place, third_place) VALUES ('Олимпиада', '2003.07.20', 'Том', 'Виктор', 'Андрей' );
Вопрос следующий. Получить список спортсменов, которые НЕ принимали участие ни в каких соревнованиях на протяжении определенного времени. Жаль что EXCEPT тут не прокатывает.. мой код:
SELECT winners_of_competitions.first_place
FROM winners_of_competitions
LEFT JOIN athletes ON athletes.name = winners_of_competitions.first_place
Все примеры которые я находил добавляли условие типа WHERE .... IS NULL но как быть в этой ситуации??? Да еще и отфильтровать по дате?!?
...
Рейтинг: 0 / 0
Камрады! Left outer join с фильтрацией по полю DATE - как?????
    #39997662
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT winners_of_competitions.first_place
FROM athletes 
LEFT JOIN winners_of_competitions 
    ON athletes.name IN (winners_of_competitions.first_place, 
                         winners_of_competitions.second_place, 
                         winners_of_competitions.third_place)
    AND date_of_the_event BETWEEN @period_start AND @period_end
WHERE winners_of_competitions.id_woc IS NULL


Только это - список тех, кто не выигрывал. А насчёт просто принять участие - на показанных данных задача нерешаема, ибо данных об участии тут тупо нет.
...
Рейтинг: 0 / 0
Камрады! Left outer join с фильтрацией по полю DATE - как?????
    #39997668
Stanislav_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT winners_of_competitions.first_place
FROM athletes 
LEFT JOIN winners_of_competitions 
    ON athletes.name IN (winners_of_competitions.first_place, 
                         winners_of_competitions.second_place, 
                         winners_of_competitions.third_place)
    AND date_of_the_event BETWEEN @period_start AND @period_end
WHERE winners_of_competitions.id_woc IS NULL


Только это - список тех, кто не выигрывал. А насчёт просто принять участие - на показанных данных задача нерешаема, ибо данных об участии тут тупо нет.


большое спасибо, но... этот код выдает колонку winners_of_competitions.first_place со значениями NULL в каждой строчке. Принять участие еще раз задача не стоит, данные об участии в прошедшем соревновании это колонки first_place, second_place, third_place которые соответственно значат занятые места в соревновании.
...
Рейтинг: 0 / 0
Камрады! Left outer join с фильтрацией по полю DATE - как?????
    #39997723
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav_SQL
этот код выдает колонку winners_of_competitions.first_place со значениями NULL в каждой строчке.
Код: sql
1.
2.
SELECT DISTINCT athletes.name 
...


Могли бы самостоятельно поправить...
...
Рейтинг: 0 / 0
Камрады! Left outer join с фильтрацией по полю DATE - как?????
    #39998204
Stanislav_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, очень благодарен
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Камрады! Left outer join с фильтрацией по полю DATE - как?????
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]