Mysql 如果我有一个依赖表,并且知道第三个表中的值,则从一个表中删除行
我知道会议室的房间指南(cda32057-b658-4660-a492-7d7838f7a692)。如何删除映像表(image_id 212)中的关联行 形象 影像室Mysql 如果我有一个依赖表,并且知道第三个表中的值,则从一个表中删除行,mysql,database,Mysql,Database,我知道会议室的房间指南(cda32057-b658-4660-a492-7d7838f7a692)。如何删除映像表(image_id 212)中的关联行 形象 影像室 +--------------+--------------+ | image_id(PK) | room_id(PK) | +--------------+--------------+ | 212 | 192 | | | | +-----
+--------------+--------------+
| image_id(PK) | room_id(PK) |
+--------------+--------------+
| 212 | 192 |
| | |
+--------------+--------------+
房间
请尝试:
DELETE FROM image
WHERE image.image_id IN
(SELECT image_room.image_id
FROM image_room
INNER JOIN room
ON image_room.room_id = room.room_id
WHERE room.room_guid = @__your_GUID__)
试试这个
DELETE FROM IMAGE WHERE IMAGE_ID IN (SELECT I.IMAGE_ID FROM IMAGE I,ROOM R WHERE I.IMAGE_ID=IR.IMAGE_ID AND IR.ROOM_ID=R.ROOM_ID AND ROOM_GUID='cda32057-b658-4660-a492-7d7838f7a692')
您可以使用join删除数据,此外,最好也从
image\u room
中删除关联数据
如果要删除特定guid
的数据,可以按如下操作
delete
i,ir from image i
join image_room ir on ir.image_id = i.image_id
join room r on r.room_id = ir.room_id
where r.room_guid = '{your input}'
现在,上面的查询还将从
image\u room
中删除关联的记录,如果您不想删除该记录,那么只需从delete子句中删除ir
,它将变为delete i from…
可能同时从image\u room
和图像中删除?我正在使用“On delete cascade”在我的图像中,您可以从那里删除我的房间表。因此,是的,您可以使用delete i from…
。
DELETE FROM IMAGE WHERE IMAGE_ID IN (SELECT I.IMAGE_ID FROM IMAGE I,ROOM R WHERE I.IMAGE_ID=IR.IMAGE_ID AND IR.ROOM_ID=R.ROOM_ID AND ROOM_GUID='cda32057-b658-4660-a492-7d7838f7a692')
delete
i,ir from image i
join image_room ir on ir.image_id = i.image_id
join room r on r.room_id = ir.room_id
where r.room_guid = '{your input}'