Некоторые указатели на окончательный ответ ...
Я предполагаю, что ваши таблицы определяются аналогично следующему:
CREATE TABLE playlists
(
playlist_id integer PRIMARY KEY,
playlist_name text
) ;
CREATE TABLE playlists_x_tracks
(
playlist_id integer,
track text,
PRIMARY KEY (playlist_id, track)
) ;
И что мы заселить их с некоторыми данными:
INSERT INTO playlists (playlist_id, playlist_name)
VALUES
(1, 'list 1'),
(2, 'list 2');
INSERT INTO playlists_x_tracks (playlist_id, track)
VALUES
(1, 'track a'),
(1, 'track b'),
(1, 'track c'),
(1, 'track d'),
(2, 'track a'),
(2, 'track e') ;
Используя SQL, и если ваш filter_tracks будет «track a», «track b» и «track x», вы получите ответ, который вы хотите, выполнив следующий запрос:
SELECT
*
FROM
playlists
WHERE
(SELECT
count(*)
FROM
playlists_x_tracks
WHERE
playlists_x_tracks.playlist_id = playlists.playlist_id
AND track in ('track a', 'track b', 'track x')
) >= 2 ;
Как этот оператор SQL может быть «переведен обратно» в «Продолжить». Я не уверен. Я действительно не знаю, как добавить SELECT в WHERE, используя Sequel. Однако вы всегда можете воспользоваться тем фактом, что в случае необходимости Sequel позволит вам напрямую использовать собственный SQL-код, что означает, что вы действительно можете написать инструкцию SQL и выполнить ее.