复杂DELETE SQL查询
问题描述:
我需要一个SQL查询,将删除记录在album
表,只有在客户签署的满足了这些要求:复杂DELETE SQL查询
// Variables as a demonstration
const signedClientId = 1;
const albumIdToDelete = 2;
要求
- 客户
clients_albums
表中有关联相册 - ---- 或 ----
- 影集存在于
domains_albums
表和客户端是域
的老板,我有5个表:
- 专辑 - ID |名称
- clients - id | first_name |姓氏
- domains - id |所有者(fk - >客户)|名称
- clients_albums - client(fk - > clients)|专辑(fk - >专辑)
- domains_albums - domain(fk - > domains)|专辑(FK - >专辑)
答
我想这应该做的伎俩:
DELETE
FROM albums
WHERE album_id IN
(SELECT album_id
FROM clients_albums
WHERE client_id = @CLIENTID)
OR
WHERE album_id IN
(SELECT album_id
FROM domain_albums JOIN domains ON domain_albums.album = albums.id
WHERE domains.owner = @CLIENTID)
@CLIENTID
是一个占位符,你可以在任何一个查询系统使用客户端ID传递。
你到目前为止尝试过什么吗? –
@VojtěchDohnal - 我为问题添加了解决方案。 – Altaula
这是一个讲英语的网站,所以请只使用英文。 –