删除一个特定的ID,相同的是不存在另一个表列ID的行


mysql> select *from add_member;
+-----------+-------------+--------------+-------------------+
| member_ID | member_name | member_phone | member_department |
+-----------+-------------+--------------+-------------------+
|     12345 | kishore     | 89482934     | IT738             |
|     12347 | ram         | 783892389    | IT721829          |
|    12346 | vardhan     | 902112       | TI5738            |
mysql> select *from ownbook;

    +--------+----------+-----------+-------------+------------+-----------
    | BookID | Bookname | member_ID | member_name | from       | to         |
    +--------+----------+-----------+-------------+------------+------------+
    |   1006 | physics  |     12346 | ram         | 2016-07-05 | 2016-07-20 |
    +--------+----------+-----------+-------------+------------+------------+
1 row in set (0.00 sec)

你可以这样尝试:

delete from add_member where member_ID  not exists(select member_ID from ownbook)

或者像

一样使用NOT IN
delete from add_member where member_ID  not in(select member_ID from ownbook)

如果是特定的数据,那么只需:

delete from add_member 
where member_ID  not in(select member_ID from ownbook where member_id in(12345,12347))

如果你想删除一个特定的id当且仅当它不应该出现在第二个表中,那么你可以这样做:

delete from add_member where member_ID='SEPCIFIC_ID_YOU_WANT' and member_ID not in(select member_ID from ownbook)

工作100%测试

最新更新