Как я мог выбрать * из таблицы movies
, где seeds
> 10 в таблице torrents
? Таблица movies
имеет уникальный id
, а таблица торрентов — id
, совпадающую с идентификатором фильма. Для каждого фильма существует несколько торрентов, и следует выбрать только тот, у которого сидов больше 10.
Единственный sql, который у меня есть, это удаление всех фильмов, у которых нет торрентов.
DELETE FROM movies WHERE NOT EXISTS ( SELECT id FROM torrents WHERE id=movies.id)
Я не очень хорошо разбираюсь в MySQL на этом уровне, даже с этим примером, который я также взял отсюда.
Помощь будет очень признательна.
что-то вроде следующего:
select *
from movies m
where exists (
select * from torrents t
where t.id = m.id and t.seeds > 10
);
id с торрентов, где сиды > 10
select * from movies where movie_id in (select id from torrents where seeds > 10);
вы также можете написать это как
select a.id from movies a join torrents b on a.movie_id = b.id
where b.seeds > 10;
вам нужно присоединиться ко второму столу
SELECT * FROM movies as m INNER JOIN torrents as t ON m.id = t.movie
WHERE t.seeds > 10
Теперь это объясняет некоторые вещи. Имея несколько примеров, которые я получил, я смог понять, как это работает, и могу сделать его сам. Большое спасибо всем.