Я знаю, что мой вопрос очень странный, но я понятия не имею, как select должен выглядеть в oracle, если я хочу увидеть фамилии всех боксеров, которые никогда не проигрывали.
Итак, у меня есть:
- таблица «боксер» со столбцами: id, fname, lname, weight.
- таблица «бой» с двумя внешними ключами от таблицы boxer (id_boxer1 и id_boxer2) и с одним победителем столбца (если боксер1 выиграл, то победитель будет номером 1, если боксер2 выиграл, тогда победитель будет номером 2)
Как выбрать боксеров, которые никогда не проиграют бой в oracle? У меня есть oracle 11g Express Edition. (Нет, я не могу обновить, мой профессор сказал, что мои ответы должны работать на 11g).
Извините, если мой вопрос не соответствует условиям этой страницы.
РЕДАКТИРОВАТЬ:
Благодаря вашей помощи я достиг этого:
select b.lname
from boxer b
where
not exists (
select 1
from fight f
where (f.id_boxer1 = b.id and winner = 2) or (f.id_boxer2 = b.id and winner = 1)
)
and exists (
select 1
from fight f
where (f.id_boxer1 = b.id and winner = 1) or (f.id_boxer2 = b.id and winner = 2)
)
and not exists (
select 1
from fight f
where (f.id_boxer1 = b.id and winner = 0) or (f.id_boxer2 = b.id and winner= 0)
)