Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果我有一个依赖表,并且知道第三个表中的值,则从一个表中删除行_Mysql_Database - Fatal编程技术网

Mysql 如果我有一个依赖表,并且知道第三个表中的值,则从一个表中删除行

Mysql 如果我有一个依赖表,并且知道第三个表中的值,则从一个表中删除行,mysql,database,Mysql,Database,我知道会议室的房间指南(cda32057-b658-4660-a492-7d7838f7a692)。如何删除映像表(image_id 212)中的关联行 形象 影像室 +--------------+--------------+ | image_id(PK) | room_id(PK) | +--------------+--------------+ | 212 | 192 | | | | +-----

我知道会议室的房间指南(cda32057-b658-4660-a492-7d7838f7a692)。如何删除映像表(image_id 212)中的关联行

形象

影像室

+--------------+--------------+
| 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}'