Сценарий, представляющий собой простую базу данных о теннисе:
Выберите игроков мужского пола, которые имеют по крайней мере два «е» в своем имени. (Это
часть отлично)
Показать список тех, кто в настоящее время имеет functie
(роль) в
члены правления стола (названный bestuursleden
). Я вывел это
когда столбец eind_datum
(дата окончания) равен NULL для логического
причины, как в моем запросе.
Игроки мужского пола в настоящее время без a functie
(функция) также должны
быть показано. Эта часть, где проблема.
Ожидаемый Результат:
naam (name) | geslacht (gender)| functie (role)
_____________|__________________|_______________
Permentier | M | Voorzitter
Bakker, de | M | NULL
Bohemen, van | M | NULL
Meuleman | M | Penningmeester
Permentier | M | NULL
Мой Результат (мне не хватает имени Богемен, фургон ):
naam (name) | geslacht (gender)| functie (role)
_____________|__________________|_______________
Permentier | M | Voorzitter
Bakker, de | M | NULL
Meuleman | M | Penningmeester
Permentier | M | NULL
Мой запрос:
SELECT naam AS role, geslacht AS gender, functie AS role
FROM spelers s LEFT JOIN bestuursleden b ON s.spelersnr = b.spelersnr
WHERE geslacht LIKE 'M' AND LOWER(naam) LIKE '%e%e%' AND eind_datum IS NULL
ORDER BY s.spelersnr
Если я опускаю WHERE проверку AND eind_datum IS NULL
, я получаю следующий результат, обратите внимание, что я добавил два столбца для дополнительной информации (дата начала и дата окончания), чтобы определить, могу ли я использовать CASE или, возможно, специальная функция DISTINCT , помогающая мне сохранить запись Bohemen, van , которая отсутствует в моем текущем результате запроса:
naam (name) | geslacht (gender)| functie (role)| begin_date | end_date
_____________|__________________|_________________|____________|___________
Permentier | M | Secretaris | NOT NULL | NOT NULL
Permentier | M | Lid | NOT NULL | NOT NULL
Permentier | M | Penningmeester | NOT NULL | NOT NULL
Permentier | M | Voorzitter | NOT NULL | NULL
Bakker, de | M | NULL | NULL | NULL
Bohemen, van | M | Secretaris | NOT NULL | NOT NULL
Meuleman | M | Penningmeester | NOT NULL | NULL
Permentier | M | NULL | NULL | NULL
Его Postgres, используя pgadmin в качестве инструмента.
Определения моей таблицы: