我看过以下两个线程:
How delete table inner join with other table in Sqlite?
SQlite delete inner join
但我很确定这个问题不会重复。
所以我写了这个选择语句:
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 from tags
where picture_id in (select id from pictures where name = "Me and Moshe Dayan") and tags.user_id = 1
但是它缺少专辑的整个内部连接,我不知道如何实现。
任何帮助将不胜感激!
答案 0 :(得分:1)
我认为您需要在子查询中使用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 ;