Как применить условие «И» к тому же столбцу в SQL-сервере? - PullRequest
0 голосов
/ 08 ноября 2019

[Нажмите на изображение]

Объяснение вопроса:

Санта хочет согреться, проведя много времени на заснеженных крышах, поэтому он хочет отправиться на курорт, который либо имеетпляж, или там есть и спа, и сауна.

Какой из вариантов содержит запрос, который идентифицирует курорты, которые отвечают требованиям Санты, таким образом, получая желаемый результат:

Требуемый результат

NAME                 PLACE
-------------------- --------------------
The Beach Resort     Honolulu
Alpine Wellness      Austria

Сценарий таблицы

create table plch_resorts 
(
     id    int     primary key,
     name  varchar(20),
     place varchar(20)
)

begin
insert into plch_resorts values (1, 'The Beach Resort', 'Honolulu')
insert into plch_resorts values (2, 'Big Win Casino',   'Las Vegas')
insert into plch_resorts values (3, 'Alpine Wellness',  'Austria')
insert into plch_resorts values (4, 'Silent Monastery', 'India')
end;

Он также определяет различные виды услуг, которые могут предложить такие курорты:

create table plch_facilities 
(
     id    int     primary key,
     name  varchar(20)
)

begin
insert into plch_facilities values (11, 'Beach')
insert into plch_facilities values (12, 'Spa')
insert into plch_facilities values (13, 'Sauna')
insert into plch_facilities values (14, 'Roulette')
insert into plch_facilities values (15, 'Quiet')
insert into plch_facilities values (16, 'Show')
end;

И затем он записывает, какие услуги доступны на каждом курорте:

create table plch_resortfacilities 
(
     resort_id   int  references plch_resorts,
     facility_id int  references plch_facilities
)

begin
insert into plch_resortfacilities values (1, 11)
insert into plch_resortfacilities values (1, 13)
insert into plch_resortfacilities values (2, 12)
insert into plch_resortfacilities values (2, 14)
insert into plch_resortfacilities values (2, 16)
insert into plch_resortfacilities values (3, 12)
insert into plch_resortfacilities values (3, 13)
insert into plch_resortfacilities values (3, 15)
insert into plch_resortfacilities values (4, 15)
end;

Мой код не работает:

select  
    A.name, A.place
from
    plch_resorts A
inner join 
    plch_resortfacilities B on A.id = B.resort_id
inner join 
    plch_facilities C on c.id = B.facility_id
where 
    c.name = 'Beach' 
    or (c.name like '%spa%' and c.name like '%sauna%')

Второе условие не работает в моем коде

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