sql – 如果另一个表中不存在id,则从表中删除

前端之家收集整理的这篇文章主要介绍了sql – 如果另一个表中不存在id,则从表中删除前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从types_photos中找不到的类型中删除id,但我不知道如何实现这一点. types_photos中的id_type与类型中的id相同.这是表格结构的样子:
CREATE TABLE IF NOT EXISTS `types` (
  `id` int(11) NOT NULL AUTO_INCREMENT,`id_user_added` int(11) DEFAULT '0',`id_user_edited` int(11) DEFAULT '0',`data_name` text NOT NULL,`data_name_SEO` text NOT NULL,`data_type` enum('tag','equipment','search') NOT NULL,`datetime_added` datetime NOT NULL,`datetime_edited` datetime NOT NULL,`ipaddress_added` text NOT NULL,`ipaddress_edited` text NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`)
)

CREATE TABLE IF NOT EXISTS `types_photos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,`id_type` int(11) DEFAULT '0',`id_photo` int(11) DEFAULT '0',UNIQUE KEY `id` (`id`)
)

所以,我的问题是;如何从types_photos中找不到的类型中删除所有id?

解决方法

DELETE FROM types 
WHERE id NOT IN (
  SELECT ID FROM types_photos
)

猜你在找的MsSQL相关文章