оператор удаления sqlite с двумя внутренними объединениями - PullRequest
0 голосов
/ 18 марта 2019

Я видел эти два потока:
Как удалить внутреннее объединение таблицы с другой таблицей в Sqlite?
SQlite удалить внутреннее объединение
Но я довольноуверен, что этот вопрос не является дубликатом.

Итак, я написал это утверждение select:

select * from tags
inner join pictures
    on pictures.id = tags.picture_id
inner join albums
    on pictures.album_id = albums.id
where tags.user_id = 1 and pictures.name = "Me and Obama" and albums.name = "Me and VIPs";

и теперь мне нужно в значительной степени сделать из него оператор delete.
Iпопытался заменить "select *" на "delete", но это неверный синтаксис.

Как бы я поступил так?Это то, что у меня есть:

delete from tags
where picture_id in (select id from pictures where name = "Me and Moshe Dayan") and tags.user_id = 1  

, но отсутствует полное внутреннее объединение с альбомами, которое я не знаю, как реализовать.
Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 18 марта 2019

Я думаю, вам нужно join в подзапросе:

delete from tags
where picture_id in (select p.id
                     from pictures p inner join
                          albums a
                          on p.album_id = a.id
                     where p.name = 'Me and Moshe Dayan' and
                           a.name = 'Me and VIPs'
                    ) and
      tags.user_id = 1  ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...