Size: a a a

2020 April 16

V

Vlad in sql_ninja
вот как-то бы сделать, что-бы через update оно каждую итерацию писало значение новой(следующей) строки с таблицы-источника
источник

V

Vlad in sql_ninja
а то, что гуглю - не робит
источник

VS

Vasily S. in sql_ninja
Vlad
спасибо за ответ, но так далеко в sql я еще не ходил
как определить, какой film_id и hall_id был во время dateOfStart? отсюда и надо
источник

VS

Vasily S. in sql_ninja
у тебя 10 подряд идущим code_afisha соответствуют 1 к 1 по каждому id из таблиц film_id и hall_id в порядке возрастанию?
источник

V

Vlad in sql_ninja
Vasily S.
у тебя 10 подряд идущим code_afisha соответствуют 1 к 1 по каждому id из таблиц film_id и hall_id в порядке возрастанию?
да
источник

VS

Vasily S. in sql_ninja
with preAfisha as
(select a.code_afisha, a.code_film, f.film_id, a.code_hall, h.hall_id
from (select Afisha.code_film, row_number() over(order by Afisha.code_afisha) as rn from Afisha) as a
inner join (select Films.film_id, row_number() over(order by Films.film_id) as rn from Films) as f
on a.rn = f.rn
(select Halls.hall_id, row_number() over(order by Hall.hall_id) as rn from Halls) as h
on a.rn = h.rn)

update preAfisha
set code_film = film_id, code_hall = hall_id
источник

VS

Vasily S. in sql_ninja
можно было поизящнее, вынести соединяемые таблицы в отдедьные CTE, но я с телефона набивал, так что как получилось
источник

V

Vlad in sql_ninja
спасибо, ругается
источник

V

Vlad in sql_ninja
получается, оно берёт у всех номер строки, по нему сравнивает и уже потом меняет значения по условию этому?
источник

VS

Vasily S. in sql_ninja
я там в одном месте Hall написал вместо Halls
источник

V

Vlad in sql_ninja
его исправил сразу, оно ругается на его select
источник

VS

Vasily S. in sql_ninja
😂 inner join там добавь перед скобкой
источник

VS

Vasily S. in sql_ninja
и смотри у тебя если не будет данных хватать, то что ожидаешь?
источник

VS

Vasily S. in sql_ninja
когда id_film есть а id_hall нет, или наоборот
источник

AA

Albert Abdullin in sql_ninja
Всем здравствуйте. Рубрика вопросы по SQL - ex.
Задача 47. Вывести страны, которые потеряли все свои корабли.
Я ее решил, но методом тыка. И буду рад, если кто-нибудь может мне объяснить разницу в следующих подходах к решению.
Я делал cte с потопленными кораблями, затем по внешнему левому соединению делаю связь с таблицей ships и по внутреннему соединению с таблицей classes. По логике там остаются страны либо с sunk, либо null. Я исключал страны с нулл, но на проверочной базе на одну запись больше.
Когда же я делаю cte с последними битвами всех имеющихся кораблей в таблице Outcomes и делаю те же соединения, только исключаю ещё все страны, где result <> 'sunk', то ответ правильный
источник

AA

Albert Abdullin in sql_ninja
Почему так происходит? Что я понимаю не до конца?
источник

M

Michael S. in sql_ninja
Хороший тренажер, но цензурных слов с каждой задачей все меньше

Скрытую базу не раскрывают, видимо такое условие именно в описании задачи.
Очевидно, не должны были быть включены страны, где result!= sunk

Забей и не парься, эта скрытая БД может "как бы" расширять условие задачи.
Рекомендую еще на форуме этого же сайта посмотреть по этому упражнению решения (доступны после выполнения задания), там часто бывает объяснение
источник

M

Michael S. in sql_ninja
Щас может меня камнями закидают, но к ИРЛ проблемам и задачам (например, на работе) этот сайт не готовит.
Из плюсов, что приходится перечитывать их учебник и после этого точно навсегда запомнишь как работает тот или иной предикат
источник

AA

Albert Abdullin in sql_ninja
Может быть
источник

G

Gopneg in sql_ninja
Забей и не парься, эта скрытая БД может "как бы" расширять условие задачи. 

условие не меняется, а вот данные новые подъезжают, прям как в реальной жизни, запрос написал, а потом в базу еще говна налили
источник